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 子句的执行顺序

相关推荐

  1. MySQLSELECT语句执行流程详解

    2024-07-12 12:08:05       31 阅读
  2. MySQL SQL 查询语句执行顺序

    2024-07-12 12:08:05       33 阅读
  3. MySQLDQL及执行顺序

    2024-07-12 12:08:05       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 12:08:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 12:08:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 12:08:05       57 阅读
  4. Python语言-面向对象

    2024-07-12 12:08:05       68 阅读

热门阅读

  1. ActiViz中的点放置器vtkPointPlacer

    2024-07-12 12:08:05       20 阅读
  2. MySQL远程登录

    2024-07-12 12:08:05       19 阅读
  3. PostgreSQL 基于时间点恢复

    2024-07-12 12:08:05       19 阅读
  4. 如何理解李彦宏说的“不要卷模型,要卷应用”

    2024-07-12 12:08:05       26 阅读
  5. 解决Spring Boot应用中的内存优化问题

    2024-07-12 12:08:05       17 阅读
  6. nginx 详解

    2024-07-12 12:08:05       25 阅读
  7. [Linux安全运维] Nginx相关

    2024-07-12 12:08:05       19 阅读
  8. 微软Edge浏览器全解析

    2024-07-12 12:08:05       22 阅读
  9. 数字加密题目

    2024-07-12 12:08:05       20 阅读
  10. 学习Symfony框架

    2024-07-12 12:08:05       19 阅读
  11. Edge浏览器下载文件提示检测到病毒无法下载

    2024-07-12 12:08:05       16 阅读