Вы можете изменить таблицу, используя команду ALTER TABLE . Ниже приведен синтаксис для создания таблицы.
Синтаксис
ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>
Используя команду ALTER, вы можете выполнить следующие операции:
-
Добавить столбец
-
Оставить столбец
Добавить столбец
Оставить столбец
Добавление столбца
Используя команду ALTER, вы можете добавить столбец в таблицу. При добавлении столбцов необходимо следить за тем, чтобы имя столбца не конфликтовало с существующими именами столбцов и чтобы таблица не была определена с опцией компактного хранения. Ниже приведен синтаксис добавления столбца в таблицу.
ALTER TABLE table name ADD new column datatype;
пример
Ниже приведен пример добавления столбца к существующей таблице. Здесь мы добавляем столбец с именем emp_email текстового типа данных в таблицу с именем emp .
cqlsh:tutorialspoint> ALTER TABLE emp ... ADD emp_email text;
верификация
Используйте оператор SELECT, чтобы проверить, добавлен столбец или нет. Здесь вы можете увидеть недавно добавленный столбец emp_email.
cqlsh:tutorialspoint> select * from emp; emp_id | emp_city | emp_email | emp_name | emp_phone | emp_sal --------+----------+-----------+----------+-----------+---------
Отбрасывание столбца
Используя команду ALTER, вы можете удалить столбец из таблицы. Перед удалением столбца из таблицы убедитесь, что таблица не определена с опцией компактного хранения. Ниже приведен синтаксис для удаления столбца из таблицы с помощью команды ALTER.
ALTER table name DROP column name;
пример
Ниже приведен пример удаления столбца из таблицы. Здесь мы удаляем столбец с именем emp_email .
cqlsh:tutorialspoint> ALTER TABLE emp DROP emp_email;
верификация
Убедитесь, что столбец удален, используя оператор выбора , как показано ниже.
cqlsh:tutorialspoint> select * from emp; emp_id | emp_city | emp_name | emp_phone | emp_sal --------+----------+----------+-----------+--------- (0 rows)
Так как столбец emp_email был удален, вы больше не можете его найти.
Изменение таблицы с использованием Java API
Вы можете создать таблицу с помощью метода execute () класса Session. Выполните шаги, приведенные ниже, чтобы изменить таблицу с помощью Java API.
Шаг 1: Создайте объект кластера
Прежде всего, создайте экземпляр класса Cluster.builder пакета com.datastax.driver.core , как показано ниже.
//Creating Cluster.Builder object Cluster.Builder builder1 = Cluster.builder();
Добавьте контактную точку (IP-адрес узла), используя метод addContactPoint () объекта Cluster.Builder . Этот метод возвращает Cluster.Builder .
//Adding contact point to the Cluster.Builder object Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Используя новый объект компоновщика, создайте объект кластера. Для этого у вас есть метод build () в классе Cluster.Builder . Следующий код показывает, как создать объект кластера.
//Building a cluster Cluster cluster = builder.build();
Вы можете построить кластерный объект, используя одну строку кода, как показано ниже.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Шаг 2. Создание объекта сеанса
Создайте экземпляр объекта Session, используя метод connect () класса Cluster, как показано ниже.
Session session = cluster.connect( );
Этот метод создает новый сеанс и инициализирует его. Если у вас уже есть пространство ключей, вы можете установить его на существующее, передав этому методу имя KeySpace в строковом формате, как показано ниже.
Session session = cluster.connect(“ Your keyspace name ” ); Session session = cluster.connect(“ tp” );
Здесь мы используем KeySpace с именем tp. Поэтому создайте объект сеанса, как показано ниже.
Шаг 3: Выполнить запрос
Вы можете выполнять CQL-запросы, используя метод execute () класса Session. Передайте запрос либо в строковом формате, либо в виде объекта класса Statement в метод execute (). Все, что вы передадите этому методу в строковом формате, будет выполнено в cqlsh .
В следующем примере мы добавляем столбец в таблицу с именем emp. Для этого необходимо сохранить запрос в строковой переменной и передать его в метод execute (), как показано ниже.
//Query String query1 = "ALTER TABLE emp ADD emp_email text"; session.execute(query);
Ниже приведена полная программа для добавления столбца к существующей таблице.
import com.datastax.driver.core.Cluster; import com.datastax.driver.core.Session; public class Add_column { public static void main(String args[]){ //Query String query = "ALTER TABLE emp ADD emp_email text"; //Creating Cluster object Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build(); //Creating Session object Session session = cluster.connect("tp"); //Executing the query session.execute(query); System.out.println("Column added"); } }
Сохраните вышеупомянутую программу с именем класса, за которым следует .java, перейдите к месту, где она была сохранена. Скомпилируйте и выполните программу, как показано ниже.
$javac Add_Column.java $java Add_Column
В нормальных условиях он должен выдавать следующий результат:
Column added
Удаление столбца
Ниже приведена полная программа для удаления столбца из существующей таблицы.
import com.datastax.driver.core.Cluster; import com.datastax.driver.core.Session; public class Delete_Column { public static void main(String args[]){ //Query String query = "ALTER TABLE emp DROP emp_email;"; //Creating Cluster object Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build(); //Creating Session object Session session = cluster.connect("tp"); //executing the query session.execute(query); System.out.println("Column deleted"); } }
Сохраните вышеупомянутую программу с именем класса, за которым следует .java, перейдите к месту, где она была сохранена. Скомпилируйте и выполните программу, как показано ниже.
$javac Delete_Column.java $java Delete_Column
В нормальных условиях он должен выдавать следующий результат: