MySQL常用的查看命令速查表(附详细代码)
作者:艾莉丝努力练剑
1 ~> MySQL 查看类命令大全
下面艾莉丝整理了超好用、考试/刷题都能直接上手使用的 MySQL 查看命令速查表,记这些就够了。

1.1 查看数据库
- 查看所有数据库
show databases;
- 进入某个数据库(必须先做这步)
use 数据库名;
- 查看当前正在用哪个库
select database();
1.2 查看表
- 查看当前库有哪些表
show tables;
- 查看表的结构(字段、类型、键、是否为空)
desc 表名;
- 这两个其实一模一样,只是写法不同
describe 表名; 和 desc
- 查看建表语句(包含引擎、字符集)
show create table 表名;
- 竖着显示,更好看
show create table 表名\G
1.3 查看数
- 查看表中所有数据
select * from 表名;
- 只看某一列
select 字段名 from 表名;
1.4 查看用户 / 权限
- 查看当前登录用户
select user();
1.5 最常用组合(截图里就是这套)
show databases;use test_db;show tables;desc t1;show create table t1;
2 ~> MySQL常用核心命令速查表
2.1 MySQL 常用核心命令速查表
下面艾莉丝整理了 MySQL 最常用的核心命令,按数据库操作、表操作、数据操作、查询操作、权限管理五大类划分。
| 命令分类 | 功能描述 | 具体命令示例 | 关键说明 |
|---|---|---|---|
| 数据库操作 | 创建数据库 | CREATE DATABASE <font color="red">IF NOT EXISTS</font> db_name; | IF NOT EXISTS 避免重复创建报错 |
| 数据库操作 | 删除数据库 | DROP DATABASE <font color="red">IF EXISTS</font> db_name; | IF EXISTS 避免删除不存在的数据库报错 |
| 数据库操作 | 切换数据库 | USE db_name; | 操作表前必须先切换到目标数据库 |
| 数据库操作 | 查看所有数据库 | SHOW DATABASES; | 列出当前MySQL实例中所有数据库 |
| 表操作 | 创建表 | CREATE TABLE tb_name ( id INT <font color="red">PRIMARY KEY</font> AUTO_INCREMENT, name VARCHAR(50) <font color="red">NOT NULL</font>, age INT <font color="red">DEFAULT 0</font> ); | PRIMARY KEY主键、AUTO_INCREMENT自增、NOT NULL非空、DEFAULT默认值 |
| 表操作 | 删除表 | DROP TABLE <font color="red">IF EXISTS</font> tb_name; | 同上,避免删除不存在的表报错 |
| 表操作 | 查看表结构 | DESC tb_name; 或 DESCRIBE tb_name; | 展示表的字段、类型、约束等信息 |
| 表操作 | 修改表名 | ALTER TABLE old_tb_name <font color="red">RENAME TO</font> new_tb_name; | RENAME TO 是修改表名的核心关键字 |
| 表操作 | 添加字段 | ALTER TABLE tb_name <font color="red">ADD COLUMN</font> email VARCHAR(100); | ADD COLUMN 新增字段,可加约束(如NOT NULL) |
| 数据操作 | 插入数据 | INSERT INTO tb_name (name, age) <font color="red">VALUES</font> ('张三', 20); | VALUES 后接插入的具体值,字段和值需一一对应 |
| 数据操作 | 批量插入数据 | INSERT INTO tb_name (name, age) VALUES ('李四', 22), ('王五', 25); | 批量插入比单条插入效率更高 |
| 数据操作 | 更新数据 | UPDATE tb_name <font color="red">SET</font> age=21 <font color="red">WHERE</font> name='张三'; | WHERE 必须加,否则更新全表数据 |
| 数据操作 | 删除数据 | DELETE FROM tb_name <font color="red">WHERE</font> id=1; | WHERE 必须加,否则删除全表数据 |
| 查询操作 | 基础查询 | SELECT <font color="red">name, age</font> FROM tb_name; | name, age 可替换为 * 查询所有字段(不推荐) |
| 查询操作 | 条件查询 | SELECT * FROM tb_name WHERE age <font color="red">BETWEEN</font> 20 AND 30; | BETWEEN…AND 范围查询,也可用 > < = != |
| 查询操作 | 排序查询 | SELECT * FROM tb_name <font color="red">ORDER BY</font> age <font color="red">DESC</font>; | ORDER BY 排序,DESC降序(默认ASC升序) |
| 查询操作 | 分页查询 | SELECT * FROM tb_name <font color="red">LIMIT</font> 0, 10; | LIMIT 起始行, 行数,起始行从0开始 |
| 权限管理 | 创建用户 | CREATE USER 'user1'@'<font color="red">localhost</font>' IDENTIFIED BY '123456'; | localhost 限制仅本地访问,% 表示任意主机 |
| 权限管理 | 授权用户 | GRANT <font color="red">ALL</font> ON db_name.* TO 'user1'@'localhost'; | ALL 可替换为 SELECT/INSERT 等具体权限 |
| 权限管理 | 刷新权限 | FLUSH <font color="red">PRIVILEGES</font>; | 授权/改权限后必须执行,使权限生效 |
2.2 补充说明(高频实用命令)
1、查看当前数据库
SELECT DATABASE();
2、查看表的创建语句
SHOW CREATE TABLE tb_name; ---- 可查看表的完整创建逻辑(含索引、字符集等)
3、清空表数据(保留表结构)
TRUNCATE TABLE tb_name; -- 比DELETE快,且重置自增主键
4、简单备份数据库(终端命令)
mysqldump -u root -p db_name > db_backup.sql ---- 备份整个数据库
2.3 总结
1、核心约束 / 关键字:WHERE、IF NOT EXISTS、PRIMARY KEY、LIMIT 是避免误操作、保证数据安全的关键,必须重点掌握;
2、数据修改类命令:UPDATE/DELETE 必须加 WHERE 条件,否则会修改 / 删除全表数据,操作前建议先用 SELECT 验证条件;
3、查询优化:尽量避免用 SELECT *,只查询需要的字段;分页用 LIMIT,排序用 ORDER BY,能大幅提升查询效率。
3 ~> 其它MYSQL常见命令
艾莉丝同样补充MySQL日常开发 / 运维中高频且实用的其他核心命令,重点内容会标红,涵盖索引操作、数据校验、事务控制、性能优化、系统信息等场景,都是实际学习、工作中经常用到的:
3.1 MySQL 补充常用命令速查表
| 命令分类 | 功能描述 | 具体命令示例 | 关键说明 |
|---|---|---|---|
| 索引操作 | 创建普通索引 | CREATE <font color="red">INDEX</font> idx_name ON tb_name(name); | INDEX 普通索引,提升查询速度(不唯一、非空) |
| 索引操作 | 创建唯一索引 | CREATE <font color="red">UNIQUE INDEX</font> idx_age ON tb_name(age); | UNIQUE INDEX 索引值唯一,可避免重复数据 |
| 索引操作 | 删除索引 | DROP <font color="red">INDEX</font> idx_name ON tb_name; | 删除无用索引,减少写入性能损耗 |
| 索引操作 | 查看表索引 | SHOW <font color="red">INDEX</font> FROM tb_name; | 列出表中所有索引的名称、类型、关联字段等 |
| 事务控制 | 开启事务 | START <font color="red">TRANSACTION</font>; 或 BEGIN; | 手动开启事务,用于保证多操作原子性 |
| 事务控制 | 提交事务 | <font color="red">COMMIT</font>; | 确认事务内所有操作,永久生效 |
| 事务控制 | 回滚事务 | <font color="red">ROLLBACK</font>; | 撤销事务内未提交的所有操作,恢复到事务开始前状态 |
| 事务控制 | 设置保存点 | SAVEPOINT sp1; + ROLLBACK <font color="red">TO</font> sp1; | 回滚到事务内指定保存点,而非整个事务 |
| 数据校验/修改 | 去重查询 | SELECT <font color="red">DISTINCT</font> name FROM tb_name; | DISTINCT 过滤重复行,仅返回唯一值 |
| 数据校验/修改 | 批量替换字段值 | UPDATE tb_name SET name = <font color="red">REPLACE</font>(name, '张三', 'ZhangSan'); | REPLACE 替换字段中指定字符串 |
| 数据校验/修改 | 空值处理 | SELECT * FROM tb_name WHERE age <font color="red">IS NULL</font>; | IS NULL 判断空值(不能用 = NULL) |
| 聚合查询 | 统计计数 | SELECT <font color="red">COUNT(*)</font> FROM tb_name WHERE age>20; | COUNT(*) 统计行数,也可用 COUNT(字段) 排除NULL |
| 聚合查询 | 求和/平均值 | SELECT <font color="red">SUM(age)</font>, <font color="red">AVG(age)</font> FROM tb_name; | SUM 求和、AVG 求平均 |
| 聚合查询 | 分组查询 | SELECT age, <font color="red">COUNT(*)</font> FROM tb_name <font color="red">GROUP BY</font> age; | GROUP BY 按字段分组,常配合聚合函数 |
| 性能优化 | 查看SQL执行计划 | EXPLAIN <font color="red">SELECT * FROM tb_name WHERE name='张三';</font> | EXPLAIN 分析SQL是否走索引、扫描行数等 |
| 性能优化 | 查看慢查询日志状态 | SHOW VARIABLES LIKE '<font color="red">slow_query_log</font>'; | 检查慢查询日志是否开启,定位低效SQL |
| 性能优化 | 查看当前连接数 | SHOW <font color="red">PROCESSLIST</font>; | 查看所有数据库连接,排查慢连接、锁等待问题 |
| 系统信息 | 查看MySQL版本 | SELECT <font color="red">VERSION()</font>; | 确认MySQL版本,适配不同版本的语法差异 |
| 系统信息 | 查看当前用户 | SELECT <font color="red">USER()</font>; | 查看当前登录的MySQL用户及主机 |
| 系统信息 | 查看字符集配置 | SHOW VARIABLES LIKE '<font color="red">character_set%</font>'; | 检查数据库/表/连接的字符集,避免乱码问题 |
| 表结构修改 | 修改字段类型 | ALTER TABLE tb_name <font color="red">MODIFY COLUMN</font> name VARCHAR(100); | MODIFY COLUMN 修改字段类型/长度 |
| 表结构修改 | 删除字段 | ALTER TABLE tb_name <font color="red">DROP COLUMN</font> email; | DROP COLUMN 删除表中无用字段 |
| 锁操作 | 查看表锁状态 | SHOW <font color="red">OPEN TABLES</font> WHERE In_use>0; | 查看被锁定的表,排查锁阻塞问题 |
| 锁操作 | 手动锁表/解锁 | LOCK TABLES tb_name <font color="red">READ</font>; + UNLOCK TABLES; | READ 读锁(仅读),也可用 WRITE 写锁(独占) |
3.2 补充实用运维命令(终端 / 客户端)
| 场景 | 命令示例 | 说明 |
|---|---|---|
| 导入SQL文件 | mysql -u root -p db_name < <font color="red">backup.sql</font> | 将备份的SQL文件导入指定数据库(终端执行) |
| 修复损坏的表 | REPAIR TABLE tb_name; | MyISAM表损坏时修复(InnoDB表优先用事务回滚) |
| 设置自动提交事务 | SET <font color="red">autocommit</font> = 0; | 关闭自动提交,需手动COMMIT/ROLLBACK(默认1=开启) |
| 查看表占用空间 | SELECT table_name, data_length/1024/1024 AS size_mb FROM information_schema.tables WHERE table_schema='db_name'; | 统计数据库中各表的大小(单位MB) |
3.3 总结
1、高频补充命令:索引操作(
CREATE INDEX/DROP INDEX)、事务控制(COMMIT/ROLLBACK)、执行计划(EXPLAIN)是优化查询的核心,必须掌握;2、运维必备:
SHOW PROCESSLIST(查连接)、EXPLAIN(分析SQL)、字符集检查(character_set%)能快速定位性能 / 乱码问题;3。数据安全:事务控制可避免多操作出错,
DISTINCT去重、IS NULL判空能保证数据校验的准确性。
4 ~> MySQL 进阶高频命令速查表
4.1 MySQL 进阶高频命令速查表
| 命令分类 | 功能描述 | 具体命令示例 | 关键说明 |
|---|---|---|---|
| 高级查询 | 多表关联查询(内连接) | SELECT a.name, b.order_no FROM user a <font color="red">INNER JOIN</font> order b ON a.id = b.user_id; | INNER JOIN 只返回两表匹配的数据,也可用 JOIN 简写 |
| 高级查询 | 多表关联查询(左连接) | SELECT a.name, b.order_no FROM user a <font color="red">LEFT JOIN</font> order b ON a.id = b.user_id; | LEFT JOIN 保留左表所有数据,右表无匹配则为NULL |
| 高级查询 | 子查询(IN) | SELECT * FROM user WHERE id <font color="red">IN</font> (SELECT user_id FROM order WHERE amount>100); | IN 子查询,适合小数据集;大数据集用JOIN更高效 |
| 高级查询 | 条件过滤(HAVING) | SELECT age, COUNT(*) FROM user GROUP BY age <font color="red">HAVING</font> COUNT(*)>5; | HAVING 过滤分组后的数据(WHERE过滤分组前) |
| 用户权限细化 | 回收用户权限 | REVOKE <font color="red">DELETE</font> ON db_name.* FROM 'user1'@'localhost'; | REVOKE 撤销指定权限,需FLUSH PRIVILEGES生效 |
| 用户权限细化 | 修改用户密码 | ALTER USER 'user1'@'localhost' <font color="red">IDENTIFIED BY</font> 'new_password'; | MySQL8.0+推荐用ALTER USER,5.7可用SET PASSWORD |
| 用户权限细化 | 删除用户 | DROP USER <font color="red">IF EXISTS</font> 'user1'@'localhost'; | IF EXISTS 避免删除不存在的用户报错 |
| 表维护 | 优化表(整理碎片) | OPTIMIZE <font color="red">TABLE</font> tb_name; | 针对InnoDB/MyISAM表整理碎片,释放磁盘空间(需锁表,低峰执行) |
| 表维护 | 重命名字段 | ALTER TABLE tb_name <font color="red">RENAME COLUMN</font> old_col TO new_col; | MySQL8.0+支持,低版本需先MODIFY再DROP旧字段 |
| 表维护 | 复制表结构(不含数据) | CREATE TABLE new_tb <font color="red">LIKE</font> old_tb; | LIKE 复制原表所有结构(索引、约束等) |
| 表维护 | 复制表结构+数据 | CREATE TABLE new_tb SELECT * FROM old_tb <font color="red">WHERE 1=2</font>; | WHERE 1=2 只复制结构;去掉则复制结构+数据 |
| 日志管理 | 开启慢查询日志 | SET GLOBAL <font color="red">slow_query_log</font> = 1; | 临时开启(重启失效),永久生效需改my.cnf配置 |
| 日志管理 | 设置慢查询阈值 | SET GLOBAL <font color="red">long_query_time</font> = 1; | 执行时间超过1秒的SQL会被记录到慢查询日志(默认10秒) |
| 日志管理 | 查看二进制日志(binlog) | SHOW <font color="red">BINARY LOGS</font>; | 查看binlog文件列表,用于数据恢复/主从同步 |
| 变量配置 | 查看全局变量 | SHOW <font color="red">GLOBAL VARIABLES</font> LIKE 'max_connections'; | 查看MySQL全局配置(如最大连接数) |
| 变量配置 | 修改会话变量 | SET <font color="red">SESSION</font> sort_buffer_size = 1024*1024; | 仅对当前连接生效,不影响其他会话 |
| 变量配置 | 查看当前会话状态 | SHOW <font color="red">SESSION STATUS</font> LIKE 'Threads%'; | 查看当前会话的资源使用、连接数等状态 |
| 数据导入导出 | 导出指定表数据(CSV) | SELECT * FROM tb_name INTO <font color="red">OUTFILE</font> '/tmp/tb_data.csv' FIELDS TERMINATED BY ','; | 导出为CSV文件,需确保MySQL有文件写入权限 |
| 数据导入导出 | 导入CSV数据到表 | LOAD <font color="red">DATA INFILE</font> '/tmp/tb_data.csv' INTO TABLE tb_name FIELDS TERMINATED BY ','; | 批量导入CSV数据,比INSERT高效 |
| 锁与事务 | 设置事务隔离级别 | SET <font color="red">TRANSACTION ISOLATION LEVEL</font> READ COMMITTED; | 常用级别:READ COMMITTED(默认)、REPEATABLE READ、SERIALIZABLE |
| 锁与事务 | 查看事务等待锁 | SELECT * FROM <font color="red">INFORMATION_SCHEMA.INNODB_LOCK_WAITS</font>; | 定位事务锁等待问题,排查死锁 |
4.2 补充:MySQL 常用内置函数命令(高频)
| 函数类型 | 功能描述 | 命令示例 | 说明 |
|---|---|---|---|
| 日期函数 | 格式化日期 | SELECT <font color="red">DATE_FORMAT</font>(create_time, '%Y-%m-%d') FROM tb_name; | 按指定格式输出日期(%Y年、%m月、%d日) |
| 日期函数 | 计算日期差 | SELECT <font color="red">DATEDIFF</font>(NOW(), create_time) FROM tb_name; | 计算当前时间与create_time的天数差 |
| 字符串函数 | 截取字符串 | SELECT <font color="red">SUBSTRING</font>(name, 1, 2) FROM tb_name; | 截取name字段前2个字符(起始位置从1开始) |
| 字符串函数 | 拼接字符串 | SELECT <font color="red">CONCAT</font>(name, '-', age) FROM tb_name; | 拼接多个字段/字符串(NULL参与则结果为NULL) |
| 数值函数 | 四舍五入 | SELECT <font color="red">ROUND</font>(price, 2) FROM tb_name; | 将price保留2位小数 |
| 数值函数 | 取绝对值 | SELECT <font color="red">ABS</font>(amount) FROM tb_name; | 计算数值的绝对值 |
4.3 总结
1、高级查询核心:
INNER JOIN/LEFT JOIN是多表关联的基础,HAVING补充分组后过滤,子查询适合简单场景、JOIN适合大数据集;2、运维关键:
OPTIMIZE TABLE优化表碎片、慢查询日志(slow_query_log)定位低效 SQL、INNODB_LOCK_WAITS排查死锁,是日常维护必备;3、效率提升:
LOAD DATA INFILE/INTO OUTFILE批量导入导出数据,比单条INSERT/SELECT高效数倍;内置函数(DATE_FORMAT/CONCAT)能减少应用层数据处理工作量。
这些命令覆盖了从开发写复杂查询到运维排查问题的全链路,根据自己的使用场景(比如写报表 SQL、排查锁问题、批量导入数据)重点记忆对应的命令。
结尾
到此这篇关于MySQL查看命令速查表的文章就介绍到这了,更多相关MySQL查看命令速查表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
