SQL ALTER TABLE 语句

SQL ALTER TABLE命令用于添加、删除或修改现有表中的列。还可以使用 ALTER TABLE 命令在现有表上添加和删除各种约束。

语法

在现有表中添加新列的 ALTER TABLE 命令的基本语法如下。

ALTER TABLE table_name ADD column_name datatype;

在现有表中删除列的 ALTER TABLE 命令的基本语法如下。

ALTER TABLE table_name DROP COLUMN column_name;

用于更改表中列的数据类型的 ALTER TABLE 命令的基本语法如下。

ALTER TABLE table_name MODIFY COLUMN column_name datatype;

向表中的列添加NOT NULL约束的 ALTER TABLE 命令的基本语法如下。

ALTER TABLE table_name MODIFY column_name datatype NOT NULL;

ALTER TABLE 将UNIQUE 约束添加到一个表中的基本语法如下。

ALTER TABLE table_name 
ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...);

向表添加检查约束的 ALTER TABLE 命令的基本语法如下。

ALTER TABLE table_name 
ADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION);

向表中添加主键约束的 ALTER TABLE 命令的基本语法如下。

ALTER TABLE table_name 
ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);

从表中删除约束的 ALTER TABLE 命令的基本语法如下。

ALTER TABLE table_name 
DROP CONSTRAINT MyUniqueConstraint;

如果使用的是 MySQL,则代码如下

ALTER TABLE table_name 
DROP INDEX MyUniqueConstraint;

从表中删除 PRIMARY KEY约束的 ALTER TABLE 命令的基本语法如下。

ALTER TABLE table_name 
DROP CONSTRAINT MyPrimaryKey;

如果使用的是 MySQL,则代码如下

ALTER TABLE table_name 
DROP PRIMARY KEY;

示例

CUSTOMERS 表的数据如下

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

以下是向现有表添加新列的示例

ALTER TABLE CUSTOMERS ADD SEX char(1);

现在,CUSTOMERS 表已更改,SELECT 语句将输出以下内容。

+----+---------+-----+-----------+----------+------+
| ID | NAME    | AGE | ADDRESS   | SALARY   | SEX  |
+----+---------+-----+-----------+----------+------+
|  1 | Ramesh  |  32 | Ahmedabad |  2000.00 | NULL |
|  2 | Ramesh  |  25 | Delhi     |  1500.00 | NULL |
|  3 | kaushik |  23 | Kota      |  2000.00 | NULL |
|  4 | kaushik |  25 | Mumbai    |  6500.00 | NULL |
|  5 | Hardik  |  27 | Bhopal    |  8500.00 | NULL |
|  6 | Komal   |  22 | MP        |  4500.00 | NULL |
|  7 | Muffy   |  24 | Indore    | 10000.00 | NULL |
+----+---------+-----+-----------+----------+------+

以下是从现有表中删除 SEX 列的示例。

ALTER TABLE CUSTOMERS DROP SEX;

现在,CUSTOMERS 表已更改,以下是 SELECT 语句的输出。

+----+---------+-----+-----------+----------+
| ID | NAME    | AGE | ADDRESS   | SALARY   |
+----+---------+-----+-----------+----------+
|  1 | Ramesh  |  32 | Ahmedabad |  2000.00 |
|  2 | Ramesh  |  25 | Delhi     |  1500.00 |
|  3 | kaushik |  23 | Kota      |  2000.00 |
|  4 | kaushik |  25 | Mumbai    |  6500.00 |
|  5 | Hardik  |  27 | Bhopal    |  8500.00 |
|  6 | Komal   |  22 | MP        |  4500.00 |
|  7 | Muffy   |  24 | Indore    | 10000.00 |
+----+---------+-----+-----------+----------+

查看笔记

扫码一下
查看教程更方便