MySQL数据库基本命令的8个模块
MySQL 的基础命令可以按照功能和使用场景划分为 8 个核心模块,每个模块聚焦特定操作场景,便于系统学习和记忆。以下是各模块的划分及核心命令说明:
一、连接与退出数据库(基础交互)
用于建立、切换或断开与 MySQL 服务器的连接,是所有操作的前提。
命令 | 功能 | 示例 |
---|---|---|
mysql -u 用户名 -p | 本地连接数据库(需输入密码) | mysql -u root -p |
mysql -h 主机名 -u 用户名 -p 端口号 | 远程连接数据库 | mysql -h 192.168.1.1 -u root -p 3306 |
use 数据库名; | 切换到指定数据库 | use test_db; |
exit; / quit; | 退出 MySQL 客户端 | - |
status; | 查看当前连接状态(版本、数据库等) | - |
二、数据库管理(库级操作)
对数据库本身进行创建、删除、查看等操作(数据库是表的容器)。
命令 | 功能 | 示例 |
---|---|---|
CREATE DATABASE 数据库名; | 创建数据库 | CREATE DATABASE school; |
CREATE DATABASE IF NOT EXISTS 数据库名; | 避免重复创建(不存在时才创建) | CREATE DATABASE IF NOT EXISTS school; |
DROP DATABASE 数据库名; | 删除数据库(谨慎使用) | DROP DATABASE school; |
SHOW DATABASES; | 查看所有数据库 | - |
SELECT DATABASE(); | 查看当前使用的数据库 | - |
三、表结构操作(DDL:数据定义语言)
对表的结构进行创建、修改、删除等(表是数据的载体,结构定义字段和约束)。
命令 | 功能 | 示例 |
---|---|---|
CREATE TABLE 表名(字段1 类型 约束, ...); | 创建表 | CREATE TABLE student(id INT PRIMARY KEY, name VARCHAR(20)); |
ALTER TABLE 表名 ADD 字段 类型; | 新增字段 | ALTER TABLE student ADD age INT; |
ALTER TABLE 表名 MODIFY 字段 新类型; | 修改字段类型 | ALTER TABLE student MODIFY name VARCHAR(30); |
ALTER TABLE 表名 DROP 字段; | 删除字段 | ALTER TABLE student DROP age; |
ALTER TABLE 表名 RENAME TO 新表名; | 重命名表 | ALTER TABLE student RENAME TO stu; |
DROP TABLE 表名; | 删除表 | DROP TABLE stu; |
SHOW TABLES; | 查看当前数据库的所有表 | - |
DESC 表名; / DESCRIBE 表名; | 查看表结构(字段、类型、约束等) | DESC student; |
四、数据操纵(DML:数据操纵语言)
对表中的数据进行增、删、改(操作后需提交事务,MySQL 默认自动提交)。
命令 | 功能 | 示例 |
---|---|---|
INSERT INTO 表名(字段1,...) VALUES(值1,...); | 插入单行数据 | INSERT INTO student(id,name) VALUES(1,'张三'); |
INSERT INTO 表名 VALUES(值1,值2,...); | 按表字段顺序插入(需包含所有字段) | INSERT INTO student VALUES(2,'李四',18); |
INSERT INTO 表名(字段1,...) VALUES(...),(...); | 批量插入多行 | INSERT INTO student(id,name) VALUES(3,'王五'),(4,'赵六'); |
UPDATE 表名 SET 字段1=值1,... WHERE 条件; | 修改数据(无 WHERE 则改全表) | UPDATE student SET age=20 WHERE id=1; |
DELETE FROM 表名 WHERE 条件; | 删除数据(无 WHERE 则删全表) | DELETE FROM student WHERE id=1; |
TRUNCATE TABLE 表名; | 清空表数据(保留结构,速度快) | TRUNCATE TABLE student; |
五、数据查询(DQL:数据查询语言)
通过 SELECT
语句提取表中的数据,是 MySQL 最核心的操作之一。
命令 | 功能 | 示例 |
---|---|---|
SELECT 字段1,... FROM 表名; | 查询指定字段 | SELECT id,name FROM student; |
SELECT * FROM 表名; | 查询所有字段(不推荐生产环境) | SELECT * FROM student; |
SELECT 字段 FROM 表名 WHERE 条件; | 带条件查询 | SELECT * FROM student WHERE age > 18; |
SELECT 字段 FROM 表名 ORDER BY 字段 [ASC/DESC]; | 排序查询(ASC 升序,DESC 降序) | SELECT * FROM student ORDER BY age DESC; |
SELECT 字段 FROM 表名 LIMIT 起始索引, 条数; | 分页查询(起始索引从 0 开始) | SELECT * FROM student LIMIT 0,10; (查前 10 条) |
SELECT 聚合函数(字段) FROM 表名 GROUP BY 字段; | 分组聚合(如计数、求和) | SELECT class_id, COUNT(*) 人数 FROM student GROUP BY class_id; |
SELECT ... JOIN ... ON 关联条件; | 多表关联查询 | SELECT s.name, c.course FROM student s JOIN score c ON s.id = c.stu_id; |
六、用户与权限管理(安全控制)
管理 MySQL 用户的创建、删除及权限分配(控制谁能操作数据库 / 表)。
命令 | 功能 | 示例 |
---|---|---|
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码'; | 创建用户(主机为 % 表示允许所有 IP 连接) | CREATE USER 'test'@'%' IDENTIFIED BY '123456'; |
ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码'; | 修改用户密码 | ALTER USER 'test'@'%' IDENTIFIED BY '654321'; |
DROP USER '用户名'@'主机'; | 删除用户 | DROP USER 'test'@'%'; |
GRANT 权限 ON 数据库.表 TO '用户名'@'主机'; | 授予权限(*.* 表示所有库所有表) | GRANT SELECT,INSERT ON school.* TO 'test'@'%'; |
REVOKE 权限 ON 数据库.表 FROM '用户名'@'主机'; | 回收权限 | REVOKE INSERT ON school.* FROM 'test'@'%'; |
FLUSH PRIVILEGES; | 刷新权限(使权限修改生效) | - |
SELECT user, host FROM mysql.user; | 查看所有用户 | - |
七、事务控制(数据一致性)
控制 DML 操作的提交、回滚,保障多步操作的原子性(默认自动提交,可手动关闭)。
命令 | 功能 | 示例 |
---|---|---|
START TRANSACTION; / BEGIN; | 开启事务(关闭自动提交) | - |
COMMIT; | 提交事务(所有操作永久生效) | - |
ROLLBACK; | 回滚事务(撤销未提交的操作) | - |
SAVEPOINT 保存点; | 设置保存点(可回滚到指定点) | SAVEPOINT sp1; ROLLBACK TO sp1; |
SET AUTOCOMMIT=0; | 关闭自动提交(需手动 COMMIT ) | - |
SET AUTOCOMMIT=1; | 开启自动提交(默认) | - |
八、索引与约束(性能与完整性)
- 索引:加速查询(类似书籍目录);
- 约束:保证数据完整性(如主键唯一、字段非空)。
命令 | 功能 | 示例 |
---|---|---|
CREATE INDEX 索引名 ON 表名(字段); | 创建普通索引 | CREATE INDEX idx_stu_name ON student(name); |
ALTER TABLE 表名 ADD PRIMARY KEY(字段); | 添加主键约束(唯一且非空) | ALTER TABLE student ADD PRIMARY KEY(id); |
ALTER TABLE 表名 ADD UNIQUE(字段); | 添加唯一约束(字段值不重复) | ALTER TABLE student ADD UNIQUE(phone); |
ALTER TABLE 表名 ADD FOREIGN KEY(字段) REFERENCES 主表(字段); | 添加外键约束(关联其他表) | ALTER TABLE score ADD FOREIGN KEY(stu_id) REFERENCES student(id); |
ALTER TABLE 表名 MODIFY 字段 类型 NOT NULL; | 添加非空约束(字段不能为 NULL) | ALTER TABLE student MODIFY name VARCHAR(20) NOT NULL; |
DROP INDEX 索引名 ON 表名; | 删除索引 | DROP INDEX idx_stu_name ON student; |
总结
这 8 个模块基本覆盖了 MySQL 的日常操作,其中 数据查询(DQL) 和 表结构操作(DDL) 是使用频率最高的模块,而 用户权限 和 事务控制 则是保障数据库安全和数据一致性的核心。实际使用中,需根据场景灵活组合不同模块的命令。