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

mysql中select语句的执行顺序

执行顺序是什么?

Form

这一阶段读取表的数据,并准备执行后续的操作。如果有多表连接,这一步也会涉及连接操作(INNER JOIN、LEFT JOIN、RIGHT JOIN、CROSS JOIN 等)。

ON

在进行表连接时,使用 ON 关键字指定连接条件。

WHERE

这一阶段对读取的数据应用条件过滤,仅保留满足条件的记录。

GROUP BY

这一阶段对数据进行分组,通常与聚合函数(如 COUNT, SUM, AVG 等)一起使用。

HAVING

这一阶段用于过滤分组后的数据。HAVING 与 WHERE 的区别在于 HAVING 作用于分组后的数据,而 WHERE 作用于分组前的数据。

SELECT

这一阶段选择需要的列。可以包含列名、表达式或聚合函数。

DISTINCT

这一阶段用于去除结果集中重复的行。

ORDER BY

这一阶段对结果进行排序。可以按一个或多个列进行升序(ASC)或降序(DESC)排序。

LIMIT

这一阶段用于限制返回的行数。可以用于分页等场景。

                                                                                                               

为什么分组函数不能直接使用在where后面?

select ename,sal from emp where sal > min(sal);//报错。

因为分组函数在使用的时候必须先分组之后才能使用。

where执行的时候,还没有分组。所以where后面不能出现分组函数。

select sum(sal) from emp;

这个没有分组,为啥sum()函数可以用呢?

因为select在group by之后执行。

ON 和 WHERE 子句的执行顺序

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 全网最炸裂的5款SD涩涩模型!身体真的是越来越不好了!建议收藏,晚上自己偷偷打开看!
  • p14数组(2)
  • CSS 【实用教程】(2024最新版)
  • 电商出海第一步,云手机或成重要因素
  • 本地部署私人知识库的大模型!Llama 3 + RAG!
  • 通用代码生成器模板体系,域对象,枚举和动词算子
  • UCOS-III 与UCOS-III主要功能差异
  • STM32的Code、RO-data、RW-data、ZI-data和RAM以及flash的关系
  • Spring AOP 基础知识
  • HashMap第7讲——get方法源码分析
  • python,利用可变对象实现设置参数的自动回存
  • Knife4j的原理及应用详解(七)
  • 探索大模型:袋鼠云在 Text To SQL 上的实践与优化
  • 技校专业群的生成机制研究
  • linux系统“/“目录比“/home“目录小
  • 深入了解以太坊
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • @jsonView过滤属性
  • Android交互
  • canvas绘制圆角头像
  • ES6--对象的扩展
  • Twitter赢在开放,三年创造奇迹
  • V4L2视频输入框架概述
  • windows下mongoDB的环境配置
  • 工程优化暨babel升级小记
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 前端_面试
  • 前端之Sass/Scss实战笔记
  • 思考 CSS 架构
  • 算法---两个栈实现一个队列
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 正则学习笔记
  • No resource identifier found for attribute,RxJava之zip操作符
  • Java数据解析之JSON
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​Java基础复习笔记 第16章:网络编程
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • #162 (Div. 2)
  • #if等命令的学习
  • #控制台大学课堂点名问题_课堂随机点名
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (AngularJS)Angular 控制器之间通信初探
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .net framework profiles /.net framework 配置
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname