ALTER TABLE
命令用于在创建表后更改表。 您可以使用ALTER
命令执行两种操作:
语法:
ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>
您可以使用ALTER
命令在表中添加一列。 在添加列时,您必须知道列名称与现有列名称不冲突,并且表不使用紧凑存储选项进行定义。
语法:
ALTER TABLE table name ADD new column datatype;
示例:
现在举个例子来说明在已经创建的名为“student
”的表上使用ALTER
命令。 这里我们在名为student
的表中添加一个名为student_email的文本数据类型列。
使用以下命令后:
ALTER TABLE student ADD student_email text;
执行上面命令添加一个新列。 您可以使用SELECT
命令检查它。
cqlsh> use zyiz_ks; cqlsh:zyiz_ks> cqlsh:zyiz_ks> select * from student; student_id | student_city | student_fees | student_name | student_phone ------------+--------------+--------------+--------------+--------------- (0 rows) cqlsh:zyiz_ks> ALTER TABLE student ADD student_email text; cqlsh:zyiz_ks> select * from student; student_id | student_city | student_email | student_fees | student_name | student_phone ------------+--------------+---------------+--------------+--------------+--------------- (0 rows) cqlsh:zyiz_ks>
删除一列
您还可以使用ALTER
命令从表中删除现有的列。 在从表中删除列之前,应该检查表是否没有使用紧凑存储选项进行定义。
语法:
ALTER table name DROP column name;
示例:
让我们举个例子,从名为student
的表中删除一个名为student_email
的列。
使用以下命令后:
ALTER TABLE student DROP student_email;
现在,您可以看到student
表中名为“student_email
”的列现在已被删除。如果要删除多个列,请使用“,
”分隔列名。
cqlsh:zyiz_ks> ALTER TABLE student ADD student_email text; cqlsh:zyiz_ks> select * from student; student_id | student_city | student_email | student_fees | student_name | student_phone ------------+--------------+---------------+--------------+--------------+--------------- (0 rows) cqlsh:zyiz_ks> ALTER TABLE student DROP student_email; cqlsh:zyiz_ks> select * from student; student_id | student_city | student_fees | student_name | student_phone ------------+--------------+--------------+--------------+--------------- (0 rows) cqlsh:zyiz_ks>
看这个例子:
这里我们将删除以下两列:student_fees
和student_phone
。
ALTER TABLE student DROP (student_fees, student_phone);
输出结果如下所示 -
cqlsh:zyiz_ks> ALTER TABLE student DROP student_email; cqlsh:zyiz_ks> select * from student; student_id | student_city | student_fees | student_name | student_phone ------------+--------------+--------------+--------------+--------------- (0 rows) cqlsh:zyiz_ks> ALTER TABLE student DROP (student_fees, student_phone); cqlsh:zyiz_ks> select * from student; student_id | student_city | student_name ------------+--------------+-------------- (0 rows) cqlsh:zyiz_ks>