sql语句的执行顺序

sql语句的执行顺序理解 sql 语句的执行顺序对优化 sql 非常重要 那么 sql 语句的执行顺序是怎样的呢 以一条简单的的语句做分析 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 这一条语句包含我们经常用到的一些关键字 select from where groupby orderby 它的执行顺序如下 先执行 from 关键字后面的语句 明确数据的来源 它是从哪张表取来的 接着执行 where 关键字后面的语句 对数据进行筛选 再接

      理解sql语句的执行顺序对优化sql非常重要,那么sql语句的执行顺序是怎样的呢,以一条简单的的语句做分析:

sql语句的执行顺序

         这一条语句包含我们经常用到的一些关键字,select,from,where,group by,order by,它的执行顺序如下:

先执行from关键字后面的语句,明确数据的来源,它是从哪张表取来的。

接着执行where关键字后面的语句,对数据进行筛选。

再接着执行group by后面的语句,对数据进行分组分类。

然后执行select后面的语句,也就是对处理好的数据,具体要取哪一部分。

最后执行order by后面的语句,对最终的结果进行排序。

关于这个顺序,我们可以用别名来做一个判断:

sql语句的执行顺序                                    sql语句的执行顺序

        左图给emp_sex取了个别名sex,然后order by后面使用了这个别名,能正常的查到数据,说明order by的执行是在select之后。再看右边的这个图,笔者接着在group by后面也使用了sex别名,点击查询后提示错误:列名‘sex’无效。说明group by的执行是在select之前。

        至此我们有了初步的结论group by > select > order by。

        接下来笔者也给表取了个别名,然后在where和group 后面引用这个别名。

sql语句的执行顺序

         sql正常执行,说明where和group by语句均在from语句之后执行。也就是,from > where 和 from > group by

        最后只剩下where和group by的比较了,这个无法用表别名来判断,笔者目前想到的是‘常识’。这个常识就是:分组之前的过滤用where,分组之后的过滤用having。可见,where的执行是在group by之前的,即 where > group by。

        根据数学知识,由

group by > select > order by

from > where

from > group by

where > group by

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215868.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午12:58
下一篇 2026年3月18日 下午12:59


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号