在 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 命令将 phone 和 age 列添加到 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。
另请阅读