在 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;
版权归原作者 cache2021 所有, 如有侵权,请联系我们删除。