MySQL 的 ALTER 命令用于修改现有表的结构,例如添加、删除或修改列,更改表名,修改列的数据类型等。以下是常见的 ALTER 命令用法及案例:

1. 添加列

ALTER TABLE 表名 ADD 列名 数据类型;

案例

ALTER TABLE employees ADD email VARCHAR(100);

employees 表中添加一个名为 email 的列,数据类型为 VARCHAR(100)

2. 删除列

ALTER TABLE 表名 DROP COLUMN 列名;

案例

ALTER TABLE employees DROP COLUMN email;

删除 employees 表中的 email 列。

3. 修改列的数据类型

ALTER TABLE 表名 MODIFY 列名 新数据类型;

案例

ALTER TABLE employees MODIFY email VARCHAR(150);

employees 表中的 email 列的数据类型修改为 VARCHAR(150)

4. 重命名列

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型;

案例

ALTER TABLE employees CHANGE email employee_email VARCHAR(100);

employees 表中的 email 列重命名为 employee_email,并保持数据类型为 VARCHAR(100)

5. 添加主键

ALTER TABLE 表名 ADD PRIMARY KEY (列名);

案例

ALTER TABLE employees ADD PRIMARY KEY (employee_id);

employees 表中的 employee_id 列设置为主键。

6. 删除主键

ALTER TABLE 表名 DROP PRIMARY KEY;

案例

ALTER TABLE employees DROP PRIMARY KEY;

删除 employees 表的主键。

7. 添加外键

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (列名) REFERENCES 参考表名(参考列名);

案例

ALTER TABLE orders ADD CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers(customer_id);

orders 表中添加一个外键 fk_customer,将 customer_id 列与 customers 表中的 customer_id 列关联。

8. 删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

案例

ALTER TABLE orders DROP FOREIGN KEY fk_customer;

删除 orders 表中的外键 fk_customer

9. 修改表名

ALTER TABLE 旧表名 RENAME TO 新表名;

案例

ALTER TABLE employees RENAME TO staff;

employees 表重命名为 staff

10. 添加索引

ALTER TABLE 表名 ADD INDEX 索引名 (列名);

案例

ALTER TABLE employees ADD INDEX idx_email (email);

employees 表的 email 列上添加一个名为 idx_email 的索引。

11. 删除索引

ALTER TABLE 表名 DROP INDEX 索引名;

案例

ALTER TABLE employees DROP INDEX idx_email;

删除 employees 表中的 idx_email 索引。

12. 修改表的存储引擎

ALTER TABLE 表名 ENGINE = 存储引擎名;

案例

ALTER TABLE employees ENGINE = InnoDB;

employees 表的存储引擎修改为 InnoDB

13. 修改表的字符集

ALTER TABLE 表名 CONVERT TO CHARACTER SET 字符集名;

案例

ALTER TABLE employees CONVERT TO CHARACTER SET utf8mb4;

employees 表的字符集修改为 utf8mb4

14. 修改表的注释

ALTER TABLE 表名 COMMENT = '新注释';

案例

ALTER TABLE employees COMMENT = '员工信息表';

employees 表的注释修改为 员工信息表

15. 修改列的默认值

ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;

案例

ALTER TABLE employees ALTER email SET DEFAULT 'unknown@example.com';

employees 表中 email 列的默认值设置为 unknown@example.com

16. 删除列的

本篇文章内容来源于:MySQL ALTER 命令详细说明以及案例