ALTER TABLE 是 MySQL 中用于修改数据库表结构的 SQL 语句。以下是一些常见的使用场景:
-
添加列:当需要向表中添加新的列时,可以使用
ALTER TABLE语句。例如,若要向employees表中添加一个名为salary的列,可以使用以下语句:ALTER TABLE employees ADD salary DECIMAL(10, 2); -
删除列:如果需要从表中删除列,可以使用
ALTER TABLE语句。但请注意,MySQL 不支持直接删除非空列。因此,在删除列之前,必须先将该列的所有数据删除或将其设置为空。例如,若要从employees表中删除department列,可以使用以下语句:ALTER TABLE employees DROP COLUMN department; -
修改列:当需要修改表中现有列的属性时,可以使用
ALTER TABLE语句。例如,若要将employees表中的name列的最大长度从 50 改为 100,可以使用以下语句:ALTER TABLE employees MODIFY name VARCHAR(100); -
更改列的数据类型:除了修改列的长度或属性外,还可以使用
ALTER TABLE语句更改列的数据类型。但请注意,某些数据类型转换可能涉及数据丢失或格式变化。例如,将employees表中的birthdate列从DATE类型更改为DATETIME类型,可以使用以下语句:ALTER TABLE employees MODIFY birthdate DATETIME; -
添加约束:可以使用
ALTER TABLE语句向表中添加约束,如主键、唯一键、外键等。例如,若要向employees表中添加一个名为employee_id的主键,可以使用以下语句:ALTER TABLE employees ADD PRIMARY KEY (employee_id); -
删除约束:如果需要从表中删除约束,可以使用
ALTER TABLE语句。例如,若要删除employees表中的email列的唯一键约束,可以使用以下语句:ALTER TABLE employees DROP INDEX email; -
修改表名:虽然这不是直接修改表结构,但使用
RENAME TABLE子句可以更改表的名称。例如,若要将old_table_name重命名为new_table_name,可以使用以下语句:RENAME TABLE old_table_name TO new_table_name;
在使用 ALTER TABLE 时,请确保仔细考虑每个操作的影响,并在必要时备份相关数据。









