ALTER table用于修改表结构,可添加字段(ADD)、删除字段(DROP)、修改字段类型(MODIFY)、重命名字段(CHANGE)、重命名表(RENAME TO)及管理索引(ADD/DROP INDEX),操作时需注意性能影响与数据兼容性,建议在低峰期备份后执行。

在mysql中,ALTER TABLE 是用于修改已有表结构的强大命令。你可以用它来添加、删除或修改字段,调整索引,更改数据类型,以及重命名表等操作。下面介绍几种常见的使用场景和语法。
添加新字段
如果想在已存在的表中增加一个新列,可以使用 ADD 关键字。
语法:
ALTER TABLE 表名 ADD 字段名 数据类型 [约束];
示例: 向 users 表中添加 age 字段
ALTER TABLE users ADD age int default 0;
删除字段
若某个字段不再需要,可通过 DROP 删除。
语法:
ALTER TABLE 表名 DROP 字段名;
示例: 删除 users 表中的 age 字段
ALTER TABLE users DROP age;
修改字段定义
使用 MODIFY 可以更改字段的数据类型和约束(不改字段名),而 CHANGE 则可同时修改字段名和定义。
MODIFY 示例: 修改 age 字段为 TINYINT 类型
ALTER TABLE users MODIFY age TINYINT UNSIGNED;
CHANGE 示例: 将 age 字段更名为 user_age 并改为 SMALLINT
ALTER TABLE users CHANGE age user_age SMALLINT;
重命名表
使用 RENAME TO 可以给表换个名字。
语法:
ALTER TABLE 原表名 RENAME TO 新表名;
示例: 将 users 表重命名为 user_info
ALTER TABLE users RENAME TO user_info;
添加和删除索引
可以在 ALTER TABLE 中直接管理索引,比如添加普通索引或唯一索引。
添加索引示例:
ALTER TABLE users ADD INDEX idx_name (name);
ALTER TABLE users ADD UNIQUE uk_email (email);
删除索引:
ALTER TABLE users DROP INDEX idx_name;
注意事项
执行 ALTER TABLE 操作时需注意以下几点:
- 修改大表结构可能耗时较长,建议在低峰期操作
- 某些操作会导致表锁定,影响读写性能
- 修改字段类型时要确保原有数据兼容新类型
- 生产环境操作前务必先备份数据
基本上就这些常见用法。掌握 ALTER TABLE 能让你灵活应对数据库结构的变化,但也要谨慎操作,避免误改导致问题。


