SQL ALTER TABLE 语句

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

示例

-- add phone column to Customers table
ALTER TABLE Customers
ADD phone varchar(10);

这里,SQL 命令将名为 phone 的列添加到 Customers 表中。


ALTER TABLE 语法

SQL `ALTER TABLE` 语句的语法是

ALTER TABLE table_name
clause supporting_codes;

这里,

  • `table_name` 是要修改的表的名称
  • `clause` 提供有关如何更改表的进一步信息,例如 `ADD`、`RENAME COLUMN` 等。
  • `supporting_codes` 是支持子句的代码

ALTER TABLE 操作

我们可以使用 `ALTER TABLE` 命令对表执行以下操作

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

在表中添加列

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

-- add phone column to Customers table
ALTER TABLE Customers
ADD phone varchar(10);

这里,SQL 命令将名为 phone 的列添加到 Customers 表中。


在表中添加多个列

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

-- add phone and age columns to Customers table
ALTER TABLE Customers
ADD phone varchar(10), age int;

这里,SQL 命令将 phoneage 列添加到 Customers 表中。

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


在表中重命名列

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

-- rename column customer_id to c_id
ALTER TABLE Customers
RENAME COLUMN customer_id TO c_id;

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


修改列的数据类型

我们还可以使用 `ALTER TABLE` 命令与 `MODIFY` 或 `ALTER 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` 子句在表中删除(移除)列。例如,

-- delete country column from Customers table
ALTER TABLE Customers
DROP COLUMN country;

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


重命名表

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

-- rename Customers table to New_customers
ALTER TABLE Customers
RENAME TO New_customers;

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


另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战