MySQL查看命令速查表

MySQL查看命令速查表

头像

🎬 个人主页艾莉丝努力练剑
专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录
Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享

⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平


🎬 艾莉丝的简介:

在这里插入图片描述

文章目录


在这里插入图片描述

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、排查锁问题、批量导入数据)重点记忆对应的命令。


结尾

uu们,本文的内容到这里就全部结束了,艾莉丝在这里再次感谢您的阅读!

结语:希望对学习MYSQL相关内容的uu有所帮助,不要忘记给博主“一键四连”哦!

往期回顾:

【MYSQL】MYSQL学习的一大重点:MYSQL表的操作

🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡૮₍ ˶ ˊ ᴥ ˋ˶₎ა

Read more

Flutter 组件 pair 适配鸿蒙 HarmonyOS 实战:结构化元组治理,构建轻量级双元数据模型与跨层传递架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 pair 适配鸿蒙 HarmonyOS 实战:结构化元组治理,构建轻量级双元数据模型与跨层传递架构 前言 在鸿蒙(OpenHarmony)生态迈向多维数据感知、涉及高频函数返回值传递、两元坐标互操作及复杂状态标识返回的背景下,如何以最轻量化的方式实现数据的“成对化”封装,已成为提升代码整洁度与系统运行效率的“工程润滑剂”。在鸿蒙设备这类强调 AOT 极致性能与低内存开销的环境下,如果应用为了简单的双元数据(如:经纬度、错误码+消息)而动态创建大量繁琐的单次使用类(POJO),由于由于对象头开销与 GC 压力,极易由于由于“类爆炸”导致内存碎片的堆积。 我们需要一种能够支持强类型泛型、具备不可变属性且无需显式类定义的元组治理方案。 pair 为 Flutter 开发者引入了源自 C++ 与 Java 标准库经典语义的“

By Ne0inhk
【MySQL数据库基础】(二)MySQL 数据库基础从入门到上手,一篇带你吃透核心知识点!

【MySQL数据库基础】(二)MySQL 数据库基础从入门到上手,一篇带你吃透核心知识点!

目录 前言 一、为什么需要数据库?文件存储的痛点全解析 二、主流数据库大盘点,MySQL 的适用场景是什么? 2.1 主流数据库特性对比 2.2 MySQL 的核心优势 三、MySQL 基础操作,从安装到数据 CRUD 手把手教 3.1 MySQL 的多平台安装方式 3.2 连接 MySQL 服务器,核心指令解析 指令参数详解 简化连接方式 连接成功的反馈 3.3 MySQL 服务器管理(Windows 平台) 3.4 服务器、数据库、表的层级关系 3.5 MySQL 核心

By Ne0inhk
掌控消息全链路(3)——RabbitMQ/Spring-AMQP高级特性详解之TTL、死信和延迟

掌控消息全链路(3)——RabbitMQ/Spring-AMQP高级特性详解之TTL、死信和延迟

🔥我的主页:九转苍翎⭐️个人专栏:《Java SE 》《Java集合框架系统精讲》《MySQL高手之路:从基础到高阶 》《计算机网络 》《Java工程师核心能力体系构建》天行健,君子以自强不息。 Java JDK版本:Oracle OpenJDK 17.0.9 SpringBoot版本:3.5.9 * Spring Web * Lombok * Spring for RabbitMQ RabbitMQ version:3.12.1 RabbitMQ实现延迟队列的插件:rabbitmq_delayed_message_exchange-3.12.0(已免费上传至我的资源) 1.TTL TTL(Time-To-Live)是RabbitMQ中控制消息或队列生命周期的机制,用于在指定时间后自动删除消息或队列,避免资源堆积消息TTL:为单条消息设置过期时间队列TTL:

By Ne0inhk