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

select语句的书写顺序

一.MySQL SELECT语句的执行顺序

MySQL中SELECT语句的执行顺序与SQL语句的书写顺序不同,理解这个执行顺序对于编写高效查询非常重要。

1.标准SELECT语句的执行顺序

  1. FROM子句(包括JOIN操作)

    • 首先确定数据来源表
    • 执行表连接操作
  2. WHERE子句

    • 对FROM和JOIN后的结果进行过滤
  3. GROUP BY子句

    • 对WHERE过滤后的数据进行分组
  4. HAVING子句

    • 对分组后的结果进行过滤
  5. SELECT子句

    • 选择要返回的列
    • 计算表达式和别名
  6. DISTINCT关键字

    • 去除重复行
  7. ORDER BY子句

    • 对结果进行排序
  8. LIMIT/OFFSET子句

    • 限制返回的行数和偏移量

2.执行顺序图示

FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT

3.重要说明

  • 聚合函数(如COUNT, SUM等)在GROUP BY之后执行
  • 窗口函数在SELECT阶段执行,但在ORDER BY之前
  • 子查询的执行时间取决于它们在查询中的位置

理解这个顺序有助于:

  • 优化查询性能
  • 正确使用别名
  • 避免在WHERE中使用SELECT中定义的别名
http://www.xdnf.cn/news/7018.html

相关文章:

  • DAY 23 训练
  • Vue框架
  • windows 10 做服务器 其他电脑无法访问,怎么回事?
  • 深度学习模型入门:从基础到前沿
  • leetcode 239. 滑动窗口最大值
  • MySQL初阶:sql事务和索引
  • 电子电路:什么是高频电路以及都有哪些应用?
  • 手机打电话时由对方DTMF响应切换多级IVR语音应答(二)
  • UDP的单播组播与广播
  • 使用 Python 打造一个强大的文件系统结构创建器
  • 前脚收购 Windsurf 后,OpenAI 深夜发布 Codex。
  • 基于Yolov8+PyQT的老人摔倒识别系统源码
  • 计算机视觉与深度学习 | Python实现EMD-CNN-LSTM时间序列预测(完整源码、数据、公式)
  • 基于CentOS7制作OpenSSL 1.1的RPM包
  • Webpack DefinePlugin插件介绍(允许在编译时创建JS全局常量,常量可以在源代码中直接使用)JS环境变量
  • HarmonyOS:重构万物互联时代的操作系统范式
  • 6.1.1图的基本概念
  • 在宝塔中使用.NET环境管理部署 .NET Core项目
  • GO语言语法---if语句
  • VSCode launch.json 配置参数详解
  • 软件调试纵横谈-17-win32堆的调试支持
  • Android开发——轮播图引入
  • Redis设计与实现——Redis命令参考与高级特性
  • impala
  • 基于KAN+Transformer的专业领域建模方法论
  • 【滑动窗口】LeetCode 1658题解 | 将 x 减到 0 的最小操作数
  • day28 python 类与继承
  • EXO 可以将 Mac M4 和 Mac Air 连接起来,并通过 Ollama 运行 DeepSeek 模型
  • Ansible模块——服务管理和设置定时任务
  • 中药药效成分群的合成生物学研究进展-文献精读130