MySQL 的 ALTER TABLE 命令允许你修改数据库表的结构,包括添加、删除或修改列,创建或删除索引,更改列的数据类型等。以下是一些使用 ALTER TABLE 进行数据库重构的常见操作:
添加列:
你可以使用 ADD COLUMN
子句向表中添加新列。例如,如果你想在 employees
表中添加一个名为 salary
的新列,你可以这样做:
ALTER TABLE employees
ADD COLUMN salary DECIMAL(10, 2);
删除列:
使用 DROP COLUMN
子句可以从表中删除列。例如,删除 employees
表中的 department
列:
ALTER TABLE employees
DROP COLUMN department;
修改列:
ALTER TABLE
还允许你修改现有列的属性,如数据类型或列名。要修改列的数据类型,可以使用 MODIFY COLUMN
子句。例如,将 employees
表中的 name
列的数据类型从 VARCHAR(50)
改为 TEXT
:
ALTER TABLE employees
MODIFY COLUMN name TEXT;
要更改列名,可以使用 CHANGE COLUMN
子句。例如,将 employees
表中的 old_name
列重命名为 new_name
:
ALTER TABLE employees
CHANGE COLUMN old_name new_name VARCHAR(50);
添加索引:
使用 ADD INDEX
或 CREATE INDEX
子句可以为表中的列创建索引,以提高查询性能。例如,为 employees
表的 email
列创建一个唯一索引:
ALTER TABLE employees
ADD UNIQUE INDEX idx_email (email);
删除索引:
使用 DROP INDEX
子句可以从表中删除索引。例如,删除 employees
表中的 idx_employee_id
索引:
ALTER TABLE employees
DROP INDEX idx_employee_id;
其他结构更改:
ALTER TABLE
还支持其他一些结构更改,如设置或取消表的锁定,更改表的存储引擎等。例如,将 employees
表的存储引擎从 InnoDB
改为 MyISAM
:
ALTER TABLE employees
ENGINE=MyISAM;
在进行数据库重构时,重要的是要确保你了解每个操作的影响,并在必要时备份数据。一些操作可能会导致数据丢失或表锁定,因此最好在低峰时段进行这些操作,并预先准备好应对可能出现的问题。