我是靠谱客的博主 威武鞋子,最近开发中收集的这篇文章主要介绍sql语句的执行顺序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

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

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

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

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

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

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




                                   


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

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

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

         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

可得 from > where > group by > select > order by。这就是一条基本sql的执行顺序。






最后

以上就是威武鞋子为你收集整理的sql语句的执行顺序的全部内容,希望文章能够帮你解决sql语句的执行顺序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部