跳到主要内容

SQL修改表(ALTER TABLE)

提示

1.ALTER TABLE的基本用途:在SQL中,ALTER TABLE命令用于修改现有表的结构,包括添加、删除、重命名列,以及修改列的数据类型。

2.添加和修改列:可以使用ALTER TABLEADD子句在表中添加新列,或者使用MODIFYALTER COLUMN子句更改列的数据类型。

3.删除和重命名操作ALTER TABLE还支持删除(使用DROP COLUMN)和重命名(使用RENAME TORENAME COLUMN)列和表的功能。

在 SQL 中,ALTER TABLE 命令用于修改现有表的结构,例如添加、删除、重命名列等。

示例

ALTER TABLE Customers
ADD phone varchar(10);

这里,SQL 命令在 Customers 表中添加了一个名为 phone 的列。

ALTER TABLE 语法

SQL ALTER TABLE 语句的语法是:

ALTER TABLE 表名
子句 支持代码;

这里,

  • 表名 是要修改的表的名称
  • 子句 提供有关如何更改表的进一步信息,如 ADDRENAME COLUMN 等。
  • 支持代码 是支持子句的代码

ALTER TABLE 操作

我们可以使用 ALTER TABLE 命令在表上执行以下操作:

  • 添加列
  • 重命名列
  • 修改列
  • 删除列
  • 重命名表

在表中添加列

我们可以使用 ALTER TABLE 命令和 ADD 子句在表中添加列。例如,

ALTER TABLE Customers
ADD phone varchar(10);

这里,SQL 命令在 Customers 表中添加了一个名为 phone 的列。

在表中添加多个列

我们还可以一次向表中添加多个列。例如,

-- 在 Customers 表中添加 phone 和 age 列
ALTER TABLE Customers
ADD phone varchar(10), age int;

这里,SQL 命令在 Customers 表中添加了 phoneage 列。

注意: 由于我们的编译器使用 SQLite,它不支持使用 ALTER TABLE 添加多个列。然而,许多其他数据库管理系统支持这个命令。

在表中重命名列

我们可以使用 ALTER TABLE 命令和 RENAME COLUMN 子句重命名表中的列。例如,

ALTER TABLE Customers
RENAME COLUMN customer_id TO c_id;

这里,SQL 命令将 Customers 表中的 customer_id 列名更改为 c_id

修改列的数据类型

我们还可以使用 ALTER TABLE 命令和 MODIFYALTER COLUMN 子句更改列的数据类型。例如,

SQL Server

ALTER TABLE Customers
ALTER COLUMN age VARCHAR(2);

MySQL

ALTER TABLE Customers
MODIFY COLUMN age VARCHAR(2);

Oracle

ALTER TABLE Customers
MODIFY age VARCHAR(2);

PostgreSQL

ALTER TABLE Customers
ALTER COLUMN age TYPE VARCHAR(2);

这里,SQL 命令将 Customers 表中的 age 列的数据类型更改为 VARCHAR

注意: SQLite 不支持此命令。

在表中删除列

我们还可以使用 ALTER TABLE 命令和 DROP 子句删除(移除)表中的列。例如,

ALTER TABLE Customers
DROP COLUMN country;

这里,SQL 命令从 Customers 表中移除了 country 列。

重命名表

我们可以使用 ALTER TABLE 命令和 RENAME 子句更改表的名称。例如,

ALTER TABLE Customers
RENAME TO New_customers;

这里,SQL 命令将 Customers 表重命名为 New_customers