目录
1 修改列名称
语法结构:ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name];
先在将users2数据表中的pid字段名称修改成p_id;
ALTER TABLE users2 CHANGE pid p_id SMALLINT UNSIGNED;
2 修改列定义
语法结构:ALTER TABLE tbl_name MODIFY [COLIMN] col_name column_definition [FIRST | AFTER col_name];
2.1 移动某个字段的位置
将id字段移动到最前面:
ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;
2.2 修改列的数据类型
ALTER TABLE users2 MODIFY id TINYINT UNSIGNED NOT NULL ;
注意: 存储范围大的数据类型改成存储范围小的数据类型,可能会造成数据丢失。
2 修改数据表名称
方法一:ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name;
方法二(可用于多张数据表的更名):RENAME TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_name]...
例子1:ALTER TABLE users2 RENAME TO users_2;
例2: RENAME TABLE users_2 TO users__2;
3 注意事项
尽量少修改数据表/列定义或名称 ,因为如果这些表/列曾经被引用的情况下,修改数据表名称或列定义可能会导致某些视图或存储过程无法正常的工作。
4 总结
4.1 约束
①按照功能划分:NOT NULL(非空约束), PRIMARY KEY(主键约束), UNIQUE KEY(唯一约束), DEFAULT(默认约束), FOREIGN KEY(外键约束).
②按照列的数目划分:表级约束,列级约束。
4.2修改数据表
①针对字段的操作:添加/删除字段、修改列定义,修改列名称等。
②针对约束的操作:添加/删除各种约束。
③针对数据表的操作:数据表更名(两种方式)。
5 参考
整理自:慕课网——MySQL 修改数据表