当前位置: 首页 > java >正文

MySQL 查询语句的执行顺序

整理了下MySQL查询语句的执行顺序。

(1) FROM
(2) ON
(3) JOIN
(4) WHERE
(5) GROUP BY
(6) WITH (CUBE|ROLLUP)
(7) HAVING
(8) SELECT
(9) DISTINCT
(10) ORDER BY
(11) LIMIT

(1) FROM 子句 - 首先执行

FROM employees e
  • MySQL 会先读取 FROM 子句中的表信息

(2) ON 条件 - 连接条件过滤

JOIN departments d ON e.dept_id = d.id
  • 对连接表的行进行匹配
  • 只有满足 ON 条件的行才会被保留

(3) JOIN 操作 - 执行表连接

  • MySQL 支持多种连接方式:INNER JOIN、LEFT/RIGHT JOIN、CROSS JOIN

(4) WHERE 条件 - 行级过滤

WHERE e.salary > 5000 AND d.location = 'NY'
  • 此时不能使用 SELECT 中的别名
  • 不能使用聚合函数(如 COUNT, SUM 等)

(5) GROUP BY - 分组操作

GROUP BY d.name, e.position
  • 可以 GROUP BY 不在 SELECT 中的列
  • 分组后每组生成一行结果

(6) WITH CUBE/ROLLUP - 生成超组

GROUP BY d.name WITH ROLLUP
  • 生成小计和总计行

(7) HAVING - 分组后过滤

HAVING AVG(e.salary) > 6000
  • 可以使用聚合函数
  • 可以使用 SELECT 中的别名

(8) SELECT - 选择输出列

SELECT d.name, AVG(e.salary) as avg_sal
  • 计算表达式和函数调用
  • 定义列别名

(9) DISTINCT - 去重操作

SELECT DISTINCT department
  • MySQL 可能在 GROUP BY 时就已经去重

(10) ORDER BY - 结果排序

ORDER BY avg_sal DESC
  • 可以使用 SELECT 中定义的别名
  • 对最终结果集排序,性能消耗较大

(11) LIMIT - 结果限制

LIMIT 10 OFFSET 5
  • MySQL 特有语法,其他数据库可能用不同方式
  • 限制返回的行数

恐惧不是真实的,它只是对未来的一种自我暗示,是我们心灵的产物。-- 烟沙九洲

http://www.xdnf.cn/news/9668.html

相关文章:

  • 【Rust模式与匹配】Rust模式与匹配深入探索与应用实战
  • 变更数据捕获(CDC)与流处理引擎实现医疗数据实时同步(下)
  • 【C语言】函数指针及其应用
  • Python基础 | jupyter工具的安装与基本使用
  • AI 眼镜新纪元:贴片式TF卡与 SOC 芯片的黄金组合破局智能穿戴
  • 油猴脚本开发基础
  • 苹果公司计划按年份来重命名重大的软件,将升级iOS 18软件至iOS 26
  • Apache Kafka 实现原理深度解析:生产、存储与消费全流程
  • 如何将 WSL 的 Ubuntu-24.04 迁移到其他电脑
  • 【C语言极简自学笔记】项目开发——扫雷游戏
  • 【AI论文】论文转海报:迈向从科学论文到多模态海报的自动化生成
  • 【计算机网络】第2章:应用层—应用层协议原理
  • 记录一个难崩的bug
  • leetcode701.二叉搜索树中的插入操作:迭代法利用有序性寻找空节点插入点
  • 【评测】DuReader-Retrieval数据集之初体验
  • C++并集查找
  • 关于scrapy在pycharm中run可以运行,但是debug不行的问题
  • 联想小新pro 14 重新安装系统提示acpi-bios-error错误的解决方法
  • VSCode远程开发-本地SSH隧道保存即时修改
  • 三轴云台之抗扰动技术篇
  • Text-to-SQL评估体系:从Spider 1.0数据集到2.0框架的跨越与革新
  • 9.安卓逆向2-frida hook技术-frida基本使用-frida-ps指令
  • 202505系分论文《论信息系统开发方法及应用》
  • C++学习细节回顾(汇总三)
  • Linux命令行命令自动补全
  • 自动化测试常见函数(上篇)
  • 如何使用 Python 的胶水语言特性
  • 小白成长之路-Linux程序管理(二)
  • matlab全息技术中的菲涅尔仿真成像
  • LLM Coding