MySQL基础知识——ALTER TABLE

ALTER TABLE的做用数据库

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

还能够用 ALTER TABLE 命令来添加或者删除现有数据表上的约束。3d

示例数据库表code

将"Customers"表用做示例blog

MySQL基础知识——ALTER TABLE

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

ALTER TABLE table_name table

ADD COLUMN column_name datatype;class

给"Customers"表增长一列"年龄",能够这样写:基础

ALTER TABLE Customers
ADD COLUMN 年龄 INT;

咱们再查看Customers表就在末尾增长一列"年龄"
MySQL基础知识——ALTER TABLE数据类型

因为咱们没有设定值,"年龄"列默认都是NULL值(空值)

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

ALTER TABLE table_name

DROP COLUMN column_name;

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

ALTER TABLE Customers

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

MySQL基础知识——ALTER TABLE

修改列类型语法

使用 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;

结果以下:

MySQL基础知识——ALTER TABLE

添加惟一约束语法

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

ALTER TABLE table_name

ADD CONSTRAINT MyUniqueConstraint

UNIQUE(column1, column2...);

咱们能够给"Customers"表中的"姓名"添加惟一约束

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

结果以下:

MySQL基础知识——ALTER TABLE

添加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','广东省');

结果以下:
MySQL基础知识——ALTER TABLE
当咱们把邮编的长度改为6位的长度时,就能够正常插入了。
INSERT INTO customers
VALUES('张三','中山大道101号','广州','510000','广东省');

结果以下:

MySQL基础知识——ALTER TABLE


添加主键约束语法

使用 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);

结果以下:

MySQL基础知识——ALTER TABLE

删除约束语法

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

ALTER TABLE table_name

DROP CONSTRAINT MyUniqueConstraint;

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

ALTER TABLE Customers
DROP CONSTRAINT con_客户ID ;

咱们能够看到直接的约束被删除了。

MySQL基础知识——ALTER TABLE

其余类型的约束一样能够用此语法进行删除。

注意:使用ALTER TABLE要极为当心,应该在进行改动前作一个完整的备份(模式和数据的备份)。数据库表的更改不能撤销,若是增长了不须要的列,可能不能删除它们。相似地,若是删除了不该该删除的列,可能会丢失该列中的全部数据

相关文章
相关标签/搜索