修改表结构指:
(1)增加/删减列
(2)更改原有列数据类型
(3)重命名列、表
(4)修改表字符集
1、ALTER TABLE 语句修改表结构的语法格式:
ALTER TABLE <表名> [修改选项]
修改选项的语法格式包括:
{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }
{ ADD COLUMN <列名> <类型> #增加列
| CHANGE COLUMN <旧列名> <新列名> <新列类型> #修改列名&数据类型
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT } #修改某列的默认值
| MODIFY COLUMN <列名> <类型> #修改数据类型
| DROP COLUMN <列名> #删除列
| RENAME TO <新表名> #重命名表 (TO可省略不写,不影响)
| CHARACTER SET <字符集名> #修改字符集(表的编码格式等)
| COLLATE <校对规则名> } 字符集内用于字符比较和排序的一套规则
特别的:
(1)在特定列位置后,添加列
在 列2 后添加 列1:
mysql> ALTER TABLE <表名> ADD <列名1> <数据类型>(长度) AFTER <列名2>;
将 列1 添加至表的第1列:
mysql> ALTER TABLE <表名> ADD <列名1> <数据类型>(长度) FIRST;
(2)修改列的位置
将 列1 修改至 列2 后面:
mysql> ALTER TABLE <表名> MODIFY <列名1> <数据类型>(长度) AFTER <列名2>;