在 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;