创建一个表,表名vehicles。
CREATE TABLE vehicles (
vehicleId INT,
year INT NOT NULL,
make VARCHAR(100) NOT NULL,
PRIMARY KEY(vehicleId)
);
表结构如下:
ALTER TABLE–将列添加到表
ALTER TABLE ADD语句允许您将一个或多个列添加到表中。
1)在表中添加一列
ALTER TABLE table_name
ADD new_column_name column_definition [FIRST | AFTER column_name]
table_name–指定要在ALTER TABLE关键字之后添加新列的表的名称。
new_column_name –指定新列的名称。
column_definition–指定新列的数据类型,最大大小和列约束
FIRST | AFTER column_name指定表中新列的位置。您可以在现有列(ATER column_name)之后或作为第一列(FIRST)添加一列。如果省略此子句,则该列将附加在表的列列表的末尾。
示例:
ALTER TABLE vehicles ADD model VARCHAR(100) NOT NULL;
显示vehicles表的列:
DESCRIBE vehicles;
执行结果如下:
model已添加到vehicles表中。
2)将多个列添加到一个表
ALTER TABLE table_name
ADD new_column_name column_definition
[FIRST | AFTER column_name],
ADD new_column_name column_definition
[FIRST | AFTER column_name],
...;
vehicles表中添加两列color和note:
ALTER TABLE vehicles
ADD color VARCHAR(50),
ADD note VARCHAR(255);
显示vehicles表的新结构:
DESCRIBE vehicles;
ALTER TABLE–修改列
修改表中列的基本语法:
ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name];
修改列之前,先查看它的属性是一个好习惯。
1)修改一列
假设要将该note列更改NOT NULL为最多100个字符的列。
首先,显示vehicles表的列列表:
DESCRIBE vehicles;
修改note列:
ALTER TABLE vehicles
MODIFY note VARCHAR(100) NOT NULL;
显示vehicles表的列列表以验证更改:
DESCRIBE vehicles;
2)修改多列
ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name],
MODIFY column_name column_definition
[ FIRST | AFTER column_name],
...;
显示vehicles表的当前列:
使用该ALTER TABLE MODIFY语句修改多个列:
ALTER TABLE vehicles
MODIFY year SMALLINT NOT NULL,
MODIFY color VARCHAR(20) NULL AFTER make;
首先,将year列的数据类型从修改INT为SMALLINT
其次,color通过将maximum长度设置为20,删除NOT NULL约束,并将其位置更改为在make列之后显示。
结果如下:
ALTER TABLE–重命名表中的列
ALTER TABLE table_name
CHANGE COLUMN original_name new_name column_definition
[FIRST | AFTER column_name];
首先,指定列所属的表的名称。
其次,指定列名称和新名称,然后指定列新的定义。
第三,使用FIRST或AFTER选项确定列的新位置。
ALTER TABLE vehicles
CHANGE COLUMN note vehicleCondition VARCHAR(100) NOT NULL;
执行效果如下:
ALTER TABLE–删除一列
ALTER TABLE DROP COLUMN语句:
ALTER TABLE table_name DROP COLUMN column_name
首先,指定要在ALTER TABLE关键字后添加列的表的名称。
其次,指定要放在DROP COLUMN关键字之后的列的名称。
将vehicleCondition从vehicles表中删除:
ALTER TABLE vehicles
DROP COLUMN vehicleCondition;
ALTER TABLE–重命名表
ALTER TABLE RENAME TO语句:
ALTER TABLE table_name RENAME TO new_table_name;
首先,在ALTER TABLE关键字之后指定要重命名的表的名称。
其次,在RENAME TO关键字之后为表指定新名称
将vehicles表重命名为cars:
ALTERTABLEvehiclesRENAMETOcars;