SQL ALTER TABLE 语句
SQL ALTER TABLE 语句
ALTER TABLE 语句用于在现有表中添加、删除或修改列。
ALTER TABLE 语句也用于在现有表中添加和删除各种约束。
常见的 ALTER TABLE 操作有:
- 添加列 - 向表中添加新列
- 删除列 - 删除表中的列
- 重命名列 - 重命名列
- 修改列 - 更改列的数据类型、大小或约束
- 添加约束 - 添加新约束
- 重命名表 - 重命名表
ALTER TABLE 语句用于在已有的表中添加、删除或修改列。
ALTER TABLE 语句也用于在已有的表上添加和删除各种约束。
ALTER TABLE - 添加列
要在表中添加列,请使用以下语法:
ALTER TABLE table_name ADD column_name datatype;
以下 SQL 语句向 Customers 表中添加一个 Email 列:
实例
ALTER TABLE Customers ADD Email varchar(255);
ALTER TABLE - 删除列
要删除表中的某列,请使用以下语法(请注意,某些数据库系统不允许删除列):
ALTER TABLE table_name DROP COLUMN column_name;
以下 SQL 从 Customers 表中删除 Email 列:
实例
ALTER TABLE Customers DROP COLUMN Email;
ALTER TABLE - 重命名列
要重命名表中的某列,请使用以下语法:
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
要在 SQL Server 中重命名表的列,请使用以下语法:
SQL Server:
EXEC sp_rename 'table_name.old_name', 'new_name', 'COLUMN';
ALTER TABLE - 修改数据类型
要修改表中列的数据类型、大小或约束,请使用以下语法:
SQL Server / MS Access 语法:
ALTER TABLE table_name ALTER COLUMN column_name new_datatype constraint;
MySQL / Oracle 的语法:
ALTER TABLE table_name MODIFY column_name new_datatype constraint;
以下 SQL 语句将 "Email" 列的大小修改为 varchar(100),并添加了 NOT NULL 约束:
实例
ALTER TABLE Customers MODIFY Email varchar(100) NOT NULL;
ALTER TABLE - ADD CONSTRAINT 添加约束
要向现有表添加约束,请使用以下语法:
语法
ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition;
以下 SQL 语句添加一个名为 CHK_Age 的 CHECK 约束,确保 Age 列的值为 18 及以上:
实例
ALTER TABLE Members ADD CONSTRAINT CHK_Age CHECK (Age >= 18);
ALTER TABLE - 重命名表
要重命名表,请使用以下语法:
语法
ALTER TABLE table_name RENAME TO new_table_name;
以下 SQL 语句将 Customers 表重命名为 Clients:
实例
ALTER TABLE Customers RENAME TO Clients;
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 类型,将存放两位或四位数字格式的年份。
DROP COLUMN 实例
接下来,我们想要删除 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 |