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_AgeCHECK 约束,确保 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