在 MySQL 中可以使用 ALTER TABLE 语句来改变原有表的结构,例如增加或删减列、更改原有字段类型、设置或删除默认值、重新命名列或表等。

基本语法

修改表指的是修改数据库中已经存在的数据表的结构。MySQL使用ALTER TABLE语句修改表结构。常用的修改表的操作有增加字段、删除字段、修改字段名或字段类型或字段位置或字段默认值、修改表名等。

常用的语法格式如下:

ALTER TALE [修改选项];

修改选项的语法格式如下:

{ ADD [COLUMN]
| CHANGE [COLUMN]
| ALTER [COLUMN] { SET DEFAULT | DROP DEFAULT }
| MODIFY [COLUMN]
| DROP [COLUMN]
| RENAME TO }

添加字段

语法格式如下:

ALTER TABLE ADD [COLUMN] [约束条件] [FIRST|AFTER 已存在的字段名];

【实例1】在教师表teacher中添加education字段,字段类型为varchar(10)。

ALTER TABLE teacher ADD education VARCHAR(10);


【实例2】在教师表teacher中添加beizhu字段在sex字段后面,字段类型为varchar(20)。

ALTER TABLE teacher ADD beizhu VARCHAR(20) AFTER sex;

删除字段

语法格式如下:

ALTER TABLE DROP [COLUMN] ;

【实例3】将教师表teacher中beizhu字段删除。

ALTER TABLE teacher DROP beizhu;

修改字段名

语法格式如下:

ALTER TABLE CHANGE [COLUMN] ;

【实例4】将学生表student的telephone字段名字改为phone,同时字段类型改为varchar(20)。

ALTER TABLE student CHANGE telephone phone VARCHAR(20);

修改字段类型

语法格式如下:

ALTER TABLE MODIFY [COLUMN] [约束条件] [FIRST|AFTER 列名];

ALTER TABLE CHANGE [COLUMN] [约束条件] [FIRST|AFTER 列名];

【实例5】将学生表student的address字段的字段长度改为100。

ALTER TABLE student MODIFY address VARCHAR(100);

ALTER TABLE student CHANGE address address VARCHAR(100);

修改字段位置

语法格式如下:

ALTER TABLE MODIFY [COLUMN] {FIRST|AFTER 列名};

ALTER TABLE CHANGE [COLUMN] {FIRST|AFTER 列名};

【实例6】将教师表teacher中education字段修改为表的第一个字段。

ALTER TABLE teacher MODIFY education VARCHAR(10) FIRST;

ALTER TABLE teacher CHANGE education education VARCHAR(10) FIRST;


【实例7】将教师表teacher中education字段修改为profession字段后字段。

ALTER TABLE teacher MODIFY education VARCHAR(10) AFTER profession;

ALTER TABLE teacher CHANGE education education VARCHAR(10) AFTER profession;

修改字段默认值

语法格式如下:

ALTER TABLE ALTER [COLUMN] { SET DEFAULT | DROP DEFAULT };

【实例8】为教师表teacher中sex字段设置默认值,默认值为男。

ALTER TABLE teacher ALTER sex SET DEFAULT '男';

修改表名

语法格式如下:

ALTER TABLE RENAME [TO] ;

【实例9】修改教师表teacher的表名为teachers。

ALTER TABLE teacher RENAME teachers;