MySQL基础知识——ALTER TABLE

955 阅读4分钟

点击关注上方“SQL数据库开发”,\

设为“置顶或星标 ”,第一时间送达干货

ALTER TABLE的作用\

ALTER TABLE命令用于添加、删除或者更改现有数据表中的列。

还可以用 ALTER TABLE 命令来添加或者删除现有数据表上的约束。

** **

**示例数据库表
**

将"Customers"表用作示例

添加列语法

使用 ALTER TABLE 在现有的数据表中添加新列的基本语法如下:

ALTER TABLE table_name 

ADD  COLUMN column_name datatype;

给"Customers"表增加一列"年龄",可以这样写:

ALTER TABLE Customers
ADD COLUMN 年龄 INT;

我们再查看Customers表就在末尾增加一列"年龄"

由于我们没有设定值,"年龄"列默认都是NULL值(空值)

删除列语法

使用 ALTER TABLE 在现有的数据表中删除列的基本语法如下:

ALTER TABLE table_name 

DROP COLUMN column_name;

我们再将上面"Customers"刚增加的"年龄"列给删除

ALTER TABLE Customers
DROP COLUMN 年龄;

执行完后就将"年龄"列给删除了。

修改列类型语法

使用 ALTER TABLE 更改现有的数据表中列的数据类型的基本语法如下:

ALTER TABLE table_name 

MODIFY column_name datatype;

我们将"Customers"表的"邮编"由CHAR类型改成INT类型

ALTER TABLE customers 
MODIFY 邮编 INT;

添加NOT NULL约束语法

使用 ALTER TABLE 给某列添加 NOT NULL 约束 的基本语法如下:

ALTER TABLE table_name 

MODIFY column_name datatype NOT NULL;

我们可以将"Customers"表中的"省份"由NULL约束改成NOT NULL约束

ALTER TABLE Customers
MODIFY 省份 VARCHAR(20) NOT NULL;

结果如下:

添加唯一约束语法****

使用 ALTER TABLE 给数据表添加 唯一约束 的基本语法如下:

ALTER TABLE table_name 

ADD CONSTRAINT MyUniqueConstraint 

UNIQUE(column1, column2...);

我们可以给"Customers"表中的"姓名"添加唯一约束

ALTER TABLE Customers 
ADD CONSTRAINT idx_姓名 
UNIQUE(姓名);

结果如下:


添加CHECK约束语法

使用 ALTER TABLE 给数据表添加 CHECK 约束 的基本语法如下:

ALTER TABLE table_name 

ADD CONSTRAINT MyUniqueConstraint 

CHECK (CONDITION);

我们可以给"Customers"表中的"邮编"添加CHECK约束,长度必须等于6

ALTER TABLE Customers 
ADD CONSTRAINT con_客户ID 
CHECK (length(邮编)=6);

当我们插入一条数据进去时,邮编的长度不等于6时,就会提示报错,如下图:

INSERT INTO customers 
VALUES('张三','中山大道101号','广州','510','广东省');

结果如下:\

当我们把邮编的长度改成6位的长度时,就可以正常插入了。

INSERT INTO customers 
VALUES('张三','中山大道101号','广州','510000','广东省');

结果如下:\

添加主键约束语法

使用 ALTER TABLE 给数据表添加 主键约束 的基本语法如下:

ALTER TABLE table_name 

ADD CONSTRAINT MyPrimaryKey 

PRIMARY KEY (column1, column2...);

我们先在Navicat中去掉客户ID的自增长主键,然后"客户ID"再添加不具备自增长属性的主键约束

ALTER TABLE Customers 
ADD CONSTRAINT pri_客户ID 
PRIMARY KEY(客户ID);

结果如下:


删除约束语法

使用 ALTER TABLE 从数据表中 删除约束 的基本语法如下:

ALTER TABLE table_name 

DROP CONSTRAINT MyUniqueConstraint;

我们将刚才建的CHECK约束删除掉\

ALTER TABLE Customers
DROP CONSTRAINT con_客户ID ;

我们可以看到直接的约束被删除了。

其他类型的约束同样可以用此语法进行删除。

注意:使用ALTER TABLE要极为小心,应该在进行改动前做一个完整的备份(模式和数据的备份)。数据库表的更改不能撤销,如果增加了不需要的列,可能不能删除它们。类似地,如果删除了不应该删除的列,可能会丢失该列中的所有数据

今日推荐


——End——
后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。

推荐阅读
你们猜猜,哪个省的女生最爱丰胸?????

精心整理了一套SQL高级函数,建议收藏
一款SQL自动检查神器,再也不用担心SQL出错了!

SQL 语句中 where 条件后 写上1=1 是什么意思

国产数据库建模工具,看到界面第一眼,良心了!