ITPub博客

首页 > 数据库 > MySQL > mysql的ALTER TABLE命令

mysql的ALTER TABLE命令

原创 MySQL 作者:lhrbest 时间:2020-11-20 15:49:45 0 删除 编辑

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要极为小心,应该在进行改动前做一个完整的备份(模式和数据的备份)。数据库表的更改不能撤销,如果增加了不需要的列,可能不能删除它们。类似地,如果删除了不应该删除的列,可能会丢失该列中的所有数据



About Me

........................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在个人微 信公众号( DB宝)上有同步更新

● QQ群号: 230161599 、618766405,微信群私聊

● 个人QQ号(646634621),微 信号(db_bao),注明添加缘由

● 于 2020年11月完成

● 最新修改时间:2020年11月

● 版权所有,欢迎分享本文,转载请保留出处

........................................................................................................................

小麦苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

● 小麦苗出版的数据库类丛书: http://blog.itpub.net/26736162/viewspace-2142121/

小麦苗OCP、OCM、高可用、MySQL、DBA学习班http://blog.itpub.net/26736162/viewspace-2148098/

● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/

........................................................................................................................

请扫描下面的二维码来关注小麦苗的微 信公众号( DB宝)及QQ群(230161599、618766405)、添加小麦苗微 信(db_bao), 学习最实用的数据库技术。

........................................................................................................................

 

 



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2735631/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
【QQ:646634621】【微信:db_bao】【微信公众号:DB宝】【11g、12c OCM】【QQ群:230161599、618766405】【《数据库笔试面试宝典》作者】【OCP、OCM、高可用(RAC+DG+OGG)、MySQL培训班已开讲,只讲实用内容】

注册时间:2012-09-23

  • 博文量
    1586
  • 访问量
    9170510