MySQL ALTER 语句
一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 - 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/
截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观
在数据库开发中,表结构的变更是常见操作,而 MySQL 提供的 ALTER
语句正是用于修改表结构的强大工具。通过 ALTER
,我们可以轻松地添加、删除或修改表中的列,以及调整表的其他属性。
基本语法
ALTER TABLE 表名 操作;
常见操作
1. 添加列
使用 ADD
关键字向表中添加新列。
示例:添加 email
列到 t_student
表
ALTER TABLE t_student
ADD email VARCHAR(255);
2. 删除列
使用 DROP
关键字从表中删除指定列。
示例:删除 email
列
ALTER TABLE t_student
DROP COLUMN email;
3. 修改列数据类型
使用 MODIFY
或 CHANGE
关键字修改列的数据类型。
示例 1:修改 age
列的数据类型为 TINYINT
ALTER TABLE t_student
MODIFY age TINYINT;
示例 2:同时修改列名和数据类型
ALTER TABLE t_student
CHANGE age student_age TINYINT;
4. 重命名列
示例:将 student_name
列重命名为 name
ALTER TABLE t_student
CHANGE student_name name VARCHAR(100);
5. 重命名表
使用 RENAME
关键字重命名表。
示例:将 t_student
表重命名为 t_students
ALTER TABLE t_student
RENAME TO t_students;
6. 添加主键
使用 ADD PRIMARY KEY
将某列设置为主键。
示例:将 id
列设置为主键
ALTER TABLE t_student
ADD PRIMARY KEY (id);
7. 删除主键
使用 DROP PRIMARY KEY
删除表中的主键。
示例:删除主键
ALTER TABLE t_student
DROP PRIMARY KEY;
8. 添加或删除索引
添加索引
ALTER TABLE t_student
ADD INDEX idx_name (name);
删除索引
ALTER TABLE t_student
DROP INDEX idx_name;
9. 调整列位置
使用 AFTER
或 FIRST
关键字调整列的位置。
示例:将 email
列移动到 name
列之后
ALTER TABLE t_student
MODIFY email VARCHAR(255) AFTER name;
示例:将 email
列移动到第一列
ALTER TABLE t_student
MODIFY email VARCHAR(255) FIRST;
10. 修改表的默认字符集
示例:将表的字符集更改为 utf8mb4
ALTER TABLE t_student
CONVERT TO CHARACTER SET utf8mb4;
注意事项
-
锁表问题
ALTER TABLE
操作会锁定表结构,因此在高并发环境中应小心操作。 -
列的删除与重命名
删除列或重命名操作可能会导致依赖该列的视图或存储过程失效。 -
操作影响
某些复杂的ALTER TABLE
操作可能需要 MySQL 创建临时表,从而耗费更多资源。
小结
ALTER
是 MySQL 中用于修改表结构的重要命令,其常用功能包括添加或删除列、修改列属性、调整表名或字符集等。在实际使用中,需要注意操作的影响范围和执行效率,特别是在生产环境中,建议在执行之前备份数据。