修改列定义
ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definftion [FIRST | AFTER col_name]
修改位置

把id放在第一的位置
ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;


那么修改数据类型呢
将SMALLINT 修改为 TINYINT
ALTER TABLE users2 MODIFY id TINYINT UNSIGNED NOT NULL;


但是这里要注意,tinyint无符号位范围在0-255(0-2^8 -1)之间,而smallint无符号位范围在0-65535(0-2^16 -1)之间,这里修改成tinyint可能会因为范围的缩小造成数据的丢失
修改列名称
ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name]
使用change命令既可以修改列定义也可以修改列名称,功能远远强于刚才的MYDIFY
例如:现在我们准备将pid字段进行修改,并且名称也进行修改,类型改为tinyint名字改为p_id:
ALTER TABLE users2 CHANGE pid p_id TINYINT UNSIGNED NOT NULL;

数据表更名
1、ALTER TABLE tbl_name RENAME [TO|AS] new_tal_name
2、RENAME TABLE tbl_name TO new_tbl_name[,tbl_name2 TO new_tbl_name2] …
ALTER TABLE users2 RENAME users3;


RENAME TABLE users3 TO users2;


这里提醒修改列名或者表名可能导致一些关联的数据失效,建议不要随意的修改列与表的名字
本文详细介绍了如何使用SQL语句修改表结构,包括修改列定义、调整列位置、更改列名及表名的方法。特别强调了修改数据类型时可能遇到的数据丢失风险。
1630

被折叠的 条评论
为什么被折叠?



