0%

MySQL常用语句

MySQL 常用语句大全:从基础操作到系统信息查询

MySQL 提供了丰富的语句用于数据库管理、表操作及系统信息查询。本文整理了日常开发和运维中最常用的语句,涵盖数据库 / 表操作、状态查询、编码设置等场景,帮助快速掌握 MySQL 核心操作。

系统信息查询

1. 查看服务器状态与变量

1
2
3
4
5
6
7
8
-- 查看所有系统状态变量(session 级别,当前连接有效)
SHOW STATUS;

-- 查看全局系统状态变量(所有连接共享)
SHOW GLOBAL STATUS;

-- 过滤查询特定状态(如中断的客户端连接数)
SHOW STATUS LIKE 'Aborted_clients'; -- 支持通配符(% 匹配任意字符)
1
2
3
4
5
-- 查看所有系统配置变量(如字符集、连接数等)
SHOW VARIABLES;

-- 查看全局配置变量
SHOW GLOBAL VARIABLES LIKE 'max_connections'; -- 查看最大连接数

2. 版本与环境信息

1
2
3
4
5
6
7
8
9
10
11
12
13
-- 查看 MySQL 版本
SELECT VERSION();

-- 查看当前日期时间
SELECT NOW(); -- 日期+时间(如 2023-10-01 12:34:56)
SELECT CURDATE(); -- 仅日期(如 2023-10-01)
SELECT CURTIME(); -- 仅时间(如 12:34:56)

-- 查看当前登录用户
SELECT USER(); -- 输出格式:用户名@主机(如 root@localhost)

-- 查看当前使用的数据库
SELECT DATABASE();

数据库操作

1. 查看与切换数据库

1
2
3
4
5
6
7
8
-- 列出所有数据库
SHOW DATABASES;

-- 切换到指定数据库(如 test)
USE test;

-- 查看数据库创建语句(含编码格式)
SHOW CREATE DATABASE test;

2. 数据库编码设置

1
2
3
4
5
6
-- 查看数据库编码相关配置
SHOW VARIABLES LIKE 'character_set_%'; -- 客户端、连接、结果的编码
SHOW VARIABLES LIKE 'collation_%'; -- 校对规则(如 utf8_general_ci)

-- 临时设置编码(当前连接有效)
SET NAMES 'utf8mb4'; -- 等价于同时设置 client、connection、results 编码

表操作

1. 查看表信息

1
2
3
4
5
6
7
8
9
10
11
-- 查看当前数据库中的所有表
SHOW TABLES;

-- 查看指定数据库(如 test)中的表
SHOW TABLES FROM test;

-- 查看表创建语句(含存储引擎、编码等)
SHOW CREATE TABLE users;

-- 查看表状态(行数、大小、创建时间等估计值)
SHOW TABLE STATUS LIKE 'users';

2. 表结构与字段信息

1
2
3
4
5
6
7
8
9
10
11
12
-- 查看表结构(字段名、类型、主键等)
DESC users; -- 简写,等价于 DESCRIBE
DESCRIBE users;

-- 查看字段详细信息(含校对规则、权限等)
SHOW FULL COLUMNS FROM users;

-- 通过系统表查询字段信息(更灵活)
SELECT column_name, data_type, is_nullable
FROM information_schema.columns
WHERE table_schema = 'test' -- 数据库名
AND table_name = 'users'; -- 表名

3. 索引信息

1
2
3
4
5
6
7
8
-- 查看表的所有索引
SHOW INDEX FROM users;

-- 输出说明:
-- Key_name:索引名(PRIMARY 为主键)
-- Column_name:索引包含的字段
-- Non_unique:0 表示唯一索引,1 表示非唯一
-- Seq_in_index:字段在索引中的位置(复合索引需关注)

存储引擎与插件

1. 存储引擎信息

1
2
3
4
5
6
7
8
-- 查看所有支持的存储引擎(含默认引擎)
SHOW ENGINES;

-- 查看指定存储引擎(如 InnoDB)的状态
SHOW ENGINE InnoDB STATUS; -- 包含事务、锁、缓冲池等详细信息

-- 查看存储引擎日志(如 InnoDB 错误日志)
SHOW ENGINE InnoDB LOGS;

2. 插件管理

1
2
3
4
5
6
7
-- 查看所有已安装的插件
SHOW PLUGINS;

-- 输出说明:
-- Name:插件名
-- Status:状态(ACTIVE 表示激活)
-- Type:插件类型(如 STORAGE ENGINE 为存储引擎)

连接与线程管理

1. 查看活跃连接

1
2
3
4
5
6
7
8
9
10
11
12
13
-- 查看当前所有活跃连接(前100行)
SHOW PROCESSLIST;

-- 查看所有连接(包括 Sleep 状态)
SHOW FULL PROCESSLIST;

-- 输出说明:
-- Id:连接ID(可用于 KILL 命令终止连接)
-- User:连接的用户名
-- Host:客户端主机
-- Command:连接状态(Sleep 为闲置,Query 为执行查询)
-- Time:连接持续时间(秒)
-- Info:执行的SQL语句(NULL 表示无操作)

2. 终止异常连接

1
2
-- 根据连接ID终止连接(如终止 ID=123 的连接)
KILL 123;

实用查询:通过系统表获取元数据

MySQL 的 information_schema 数据库存储了所有元数据(数据库、表、字段等信息),可通过 SQL 查询灵活获取:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- 1. 查询所有数据库的表数量
SELECT table_schema, COUNT(*) AS table_count
FROM information_schema.tables
GROUP BY table_schema;

-- 2. 查询指定表(如 test.users)的字段类型
SELECT column_name, data_type, column_comment
FROM information_schema.columns
WHERE table_schema = 'test'
AND table_name = 'users';

-- 3. 查询所有包含自增字段的表
SELECT table_schema, table_name, column_name
FROM information_schema.columns
WHERE extra = 'auto_increment';

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10