MySQL ALTER TABLE
简介:在本教程中,您将学习如何使用MySQL ALTER TABLE语句添加列,更改列,重命名列,删除列和重命名表。
设置样本表
我们为演示创建一个名为Vehicles的表:
CREATE TABLE vehicles ( vehicleId INT, year INT NOT NULL, make VARCHAR(100) NOT NULL, PRIMARY KEY(vehicleId) );
MySQL ALTER TABLE –将列添加到表
ALTER TABLE ADD语句允许您将一个或多个列添加到表中。
1)在表中添加一列
要将列添加到表中,请使用ALTER TABLE ADD语法:
ALTER TABLE table_name ADD new_column_name column_definition [FIRST | AFTER column_name]
使用以下语法:
table_name –指定要在ALTER TABLE关键字之后添加一个或多个新列的表的名称。
new_column_name –指定新列的名称。
column_definition –指定新列的数据类型,最大大小和列约束
第一| AFTER column_name指定表中新列的位置。
您可以在现有列之后(ATER column_name)添加列,也可以在第一列(FIRST)中添加列。
如果省略此子句,则该列将附加在表的列列表的末尾。
以下示例使用ALTER TABLE ADD语句在Vehicles表的末尾添加一列:
ALTER TABLE vehicles ADD model VARCHAR(100) NOT NULL;
此语句显示Vehicles表的列列表:
DESCRIBE vehicles;
从输出中可以清楚地看到,列模型已添加到Vehicles表中。
2)将多个列添加到一个表
要将多个列添加到一个表中,请使用以下形式的ALTER TALE ADD语句:
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表添加两列颜色和注释:
ALTER TABLE vehicles ADD color VARCHAR(50), ADD note VARCHAR(255);
该语句显示了Vehicles表的新结构:
DESCRIBE vehicles;
MySQL ALTER TABLE –修改列
1)修改列
这是修改表中列的基本语法:
ALTER TABLE table_name MODIFY column_name column_definition [ FIRST | AFTER column_name];
在修改列之前,最好先查看其属性。
假设您想将note列更改为NOT NULL列,最多100个字符。
首先,显示Vehicles表的列列表:
DESCRIBE vehicles;
然后,修改注释列:
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
- 其次,修改颜色列,方法是将最大长度设置为20,删除NOT NULL约束,并将其位置更改为出现在make列之后。
第三,显示Vehicles表的新列列表以验证修改:
MySQL ALTER TABLE –重命名表中的列
要重命名列,请使用以下语句:
ALTER TABLE table_name CHANGE COLUMN original_name new_name column_definition [FIRST | AFTER column_name];
使用以下语法:
首先,指定列所属的表的名称。
其次,在CHANGE COLUMN关键字之后指定列名和新名称,后跟列定义。
第三,使用FIRST或AFTER column_name选项确定列的新位置。
以下示例使用ALTER TABLE CHANGE COLUMN语句将列注释重命名为vehicleCondition:
ALTER TABLE vehicles CHANGE COLUMN note vehicleCondition VARCHAR(100) NOT NULL;
让我们查看Vehicles表的列列表:
DESCRIBE vehicles;
MySQL ALTER TABLE –删除一列
要在表中删除列,请使用ALTER TABLE DROP COLUMN语句:
ALTER TABLE table_name DROP COLUMN column_name;
使用以下语法:
首先,在ALTER TABLE关键字之后指定要删除列的表的名称。
其次,在DROP COLUMN关键字之后指定要删除的列的名称。
本示例说明如何从Vehicles表中删除vehicleCondition列:
ALTER TABLE vehicles DROP COLUMN vehicleCondition;
MySQL ALTER TABLE –重命名表
要重命名表,请使用ALTER TABLE RENAME TO语句:
ALTER TABLE table_name RENAME TO new_table_name;
使用以下语法:
首先,在ALTER TABLE关键字之后指定要重命名的表的名称。
其次,在RENAME TO关键字之后指定表的新名称。
本示例将Vehicles表重命名为cars:
ALTER TABLE vehicles RENAME TO cars;
在本教程中,您学习了如何使用MySQL ALTER TABLE语句添加列,修改列,重命名列,删除列并重命名表。