在linux下使用MySQL常用的命令集合

1. 数据库查看和选择

sql 复制代码
-- 查看所有数据库
SHOW DATABASES;

-- 选择使用某个数据库(需要修改:your_database_name)
USE your_database_name;

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

说明your_database_name 替换为你要操作的具体数据库名称


2. 表操作命令

查看表结构

sql 复制代码
-- 查看当前数据库中的所有表
SHOW TABLES;

-- 查看表的结构(需要修改:your_table_name)
DESCRIBE your_table_name;
-- 或
DESC your_table_name;

-- 查看表的详细结构信息
SHOW COLUMNS FROM your_table_name;

-- 查看表的创建SQL语句
SHOW CREATE TABLE your_table_name;

说明your_table_name 替换为你要查看的具体表名称


3. 数据查询命令

基础查询

sql 复制代码
-- 查询表中所有数据的前N条(需要修改:your_table_name 和 N)
SELECT * FROM your_table_name LIMIT N;

-- 查询特定字段(需要修改:your_table_name, column1, column2)
SELECT column1, column2 FROM your_table_name LIMIT 10;

-- 查询不重复的值
SELECT DISTINCT column_name FROM your_table_name;

说明:替换表名和字段名为实际名称,N为数字

条件查询

sql 复制代码
-- 等于条件查询
SELECT * FROM your_table_name WHERE column_name = 'value';

-- 数值范围查询
SELECT * FROM your_table_name WHERE numeric_column > 100;

-- 模糊查询
SELECT * FROM your_table_name WHERE text_column LIKE '%keyword%';

-- 多条件查询
SELECT * FROM your_table_name 
WHERE condition1 = 'value1' AND condition2 = 'value2';

-- 范围查询
SELECT * FROM your_table_name WHERE column_name IN ('value1', 'value2', 'value3');

说明:根据实际条件修改字段名和值

排序和限制

sql 复制代码
-- 升序排序
SELECT * FROM your_table_name ORDER BY column_name ASC LIMIT 10;

-- 降序排序
SELECT * FROM your_table_name ORDER BY column_name DESC LIMIT 10;

-- 多字段排序
SELECT * FROM your_table_name ORDER BY column1 ASC, column2 DESC LIMIT 10;

说明ASC为升序,DESC为降序


4. 统计和聚合查询

sql 复制代码
-- 统计总行数
SELECT COUNT(*) AS total_count FROM your_table_name;

-- 统计某列非空值的数量
SELECT COUNT(column_name) AS column_count FROM your_table_name;

-- 统计不重复值的数量
SELECT COUNT(DISTINCT column_name) AS unique_count FROM your_table_name;

-- 求最大值和最小值
SELECT MAX(column_name) AS max_value, MIN(column_name) AS min_value 
FROM your_table_name;

-- 求平均值
SELECT AVG(numeric_column) AS average_value FROM your_table_name;

-- 求和
SELECT SUM(numeric_column) AS total_sum FROM your_table_name;

说明 :聚合函数用于统计数据,AS后面是别名


5. 分组查询

sql 复制代码
-- 按字段分组统计
SELECT group_column, COUNT(*) AS count 
FROM your_table_name 
GROUP BY group_column;

-- 分组后过滤
SELECT group_column, COUNT(*) AS count 
FROM your_table_name 
GROUP BY group_column 
HAVING COUNT(*) > 10;

-- 多字段分组
SELECT column1, column2, COUNT(*) 
FROM your_table_name 
GROUP BY column1, column2;

说明GROUP BY按字段分组,HAVING对分组结果过滤


6. 系统信息命令

sql 复制代码
-- 查看MySQL版本
SELECT VERSION();

-- 查看当前用户
SELECT USER();

-- 查看系统当前时间
SELECT NOW();

-- 查看数据库字符集设置
SHOW VARIABLES LIKE 'character_set%';

-- 查看连接进程
SHOW PROCESSLIST;

7. 实用技巧命令

sql 复制代码
-- 查看查询执行计划(优化查询性能)
EXPLAIN SELECT * FROM your_table_name WHERE condition;

-- 以垂直格式显示结果(适合字段多的表)
SELECT * FROM your_table_name LIMIT 1\G

-- 查看表的大小信息
SELECT 
    table_name AS '表名',
    ROUND((data_length + index_length) / 1024 / 1024, 2) AS '大小(MB)'
FROM information_schema.tables 
WHERE table_schema = 'your_database_name'
ORDER BY (data_length + index_length) DESC;

说明EXPLAIN用于分析查询性能,\G改变结果显示格式


8. 退出和帮助

sql 复制代码
-- 退出MySQL命令行
EXIT;
-- 或
QUIT;
-- 或
\q

-- 查看帮助信息
HELP;
-- 查看特定命令帮助
HELP SELECT;
HELP SHOW;

9. 常用命令组合示例

快速了解数据库

sql 复制代码
-- 1. 查看所有数据库
SHOW DATABASES;

-- 2. 选择目标数据库
USE your_database_name;

-- 3. 查看所有表
SHOW TABLES;

-- 4. 查看某个表的前5条数据
SELECT * FROM your_table_name LIMIT 5;

-- 5. 查看表结构
DESC your_table_name;

数据统计分析

sql 复制代码
-- 查看数据总量
SELECT COUNT(*) AS total_records FROM your_table_name;

-- 查看字段值的分布
SELECT column_name, COUNT(*) AS count 
FROM your_table_name 
GROUP BY column_name 
ORDER BY count DESC 
LIMIT 10;

-- 查看数值字段的统计信息
SELECT 
    MIN(numeric_column) AS min_value,
    MAX(numeric_column) AS max_value,
    AVG(numeric_column) AS avg_value,
    COUNT(numeric_column) AS record_count
FROM your_table_name;

使用提示

  1. 所有your_database_name需要替换为实际的数据库名

  2. 所有your_table_name需要替换为实际的表名

  3. 所有column_name需要替换为实际的字段名

  4. 在生产环境查询时,尽量加上LIMIT限制返回行数

  5. 复杂的查询可以先使用EXPLAIN分析性能

相关推荐
草莓熊Lotso8 分钟前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
大模型玩家七七11 分钟前
基于语义切分 vs 基于结构切分的实际差异
java·开发语言·数据库·安全·batch
历程里程碑11 分钟前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
岳麓丹枫0011 小时前
PostgreSQL 中 pg_wal 目录里的 .ready .done .history 文件的生命周期
数据库·postgresql
陌上丨7 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
AI_56788 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
ccecw8 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
wdfk_prog8 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
JH30738 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
数据知道8 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql