SQL ALTER TABLE 语句
SQL ALTER TABLE 语句
ALTER TABLE 语句用于添加、删除或修改现有表中的列。
ALTER TABLE 语句还用于添加和删除现有表上的各种约束。
ALTER TABLE - 添加列
要在表中添加列,请使用以下语法:
ALTER TABLE table_name
ADD column_name datatype;
以下SQL将"Email"列添加到"Customers"表中:
ALTER TABLE - 删除列
要删除表中的列,请使用以下语法(请注意,某些数据库系统不允许删除列):
ALTER TABLE table_name
DROP COLUMN column_name;
以下SQL从"Customers" 表中删除 "Email" 列:
ALTER TABLE - 修改列
要更改表中列的数据类型,请使用以下语法:
SQL Server / MS Access:
ALTER TABLE table_name
ALTER COLUMN column_name datatype;
My SQL / Oracle (prior version 10G):
ALTER TABLE table_name
MODIFY COLUMN column_name datatype;
Oracle 10G and later:
ALTER TABLE table_name
MODIFY column_name datatype;
SQL ALTER TABLE 实例
请看 "Persons" 表:
ID | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
现在我们想在"Persons"表中添加一个名为"DateOfBirth"的列。
我们使用以下SQL语句:
ALTER TABLE Persons
ADD DateOfBirth date;
请注意,新列"DateOfBirth"的类型为date,将保存一个日期。数据类型指定列可以保存的数据类型。有关MS Access、MySQL和SQL Server中所有可用数据类型的完整参考,请转到我们的完整数据类型参考。
现在,"Persons" 表将如下所示:
ID | LastName | FirstName | Address | City | DateOfBirth |
---|---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes | |
2 | Svendson | Tove | Borgvn 23 | Sandnes | |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
更新 数据类型 实例
现在我们要更改"Persons"表中名为"DateOfBirth"的列的数据类型。
我们使用以下SQL语句:
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year;
请注意,"DateOfBirth" 列现在是 year 类型,将以两位数或四位数的格式保存一年。
删除实例
接下来,我们要删除"Persons"表中名为"DateOfBirth"的列。
我们使用以下SQL语句:
ALTER TABLE Persons
DROP COLUMN DateOfBirth;
现在,"Persons" 表将如下所示:
ID | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |