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
时,请确保仔细考虑每个操作的影响,并在必要时备份相关数据。