sql语句的执行顺序
了解sql语句的执行顺序对于优化sql很重要,那么sql语句的执行顺序是怎样的呢?让我们用一个简单的语句来分析它:
这个语句包含了一些我们经常使用的关键字,from、where、group by、order by,其执行顺序如下:
先执行from关键字后面的语句,明确数据的来源和获取自哪个表。
然后执行where关键字后面的语句过滤数据。
然后执行group by后面的语句js 语句按顺序执行,对数据进行分组和分类。
然后执行下面的语句,即取处理后的数据的哪一部分。
最后执行order by后的语句,对最终结果进行排序。
关于这个顺序,我们可以用别名来判断:
左图取别名sex,然后在order by后面使用别名,可以正常找到数据,说明order by的执行是after。看右图,作者也是用group by后的性别别名。点击查询后提示错误:列名’sex’无效。说明group by的执行是之前的。
到目前为止,我们已经有了一个初步的结论 group by >> order by。
接下来,作者还为表取了一个别名,然后在where和group后面引用了这个别名。
sql正常执行,表示where和group by语句都在from语句之后执行。即from > where and from > group by
最后只剩下where和group by的比较了。这不能通过表别名来判断。我目前在想的是“常识”。这个常识就是:where用于分组前过滤,where用于分组后过滤。可以看出where的执行在group by之前js 语句按顺序执行,即where>group by。
根据数学知识,由
分组方式>>排序方式
从>哪里
来自 > 分组
在哪里 > 分组
您可以从 > where > group by > > order by 获取。这是一个基本sql的执行顺序。
暂无评论内容