Mysql DQL语言执行顺序

Posted java_取名南

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql DQL语言执行顺序相关的知识,希望对你有一定的参考价值。

mysql DQL语言执行顺序:

select 查询列表 ⑦
from 表1 别名 ①
连接类型 join 表2 ②
on 连接条件 ③
where 筛选 ④
group by 分组列表 ⑤
having 筛选 ⑥
order by排序列表 ⑧
limit 起始条目索引,条目数; ⑨

 

1、from:首先对from子句中前两个表执行笛卡尔乘积,生成虚拟表1

2、on:使用on筛选器,在虚拟表1中根据逻辑表达式筛选出满足条件的行行或多行,生成虚拟表2

3、join:如果是join,则添加匹配的外部行;如果是left join就把左边第二步中未匹配的行添加进来,如果是right join就把右表在第二步中未匹配的行添加进来,生成虚拟表3.

4、where:对虚拟表3执行where条件进行过滤,符合条件的生成虚拟表4

5、group by:对虚拟表4进行分组操作生成虚拟表5

6:having:在虚拟表5上继续执行having后的条件筛选,将满足条件的生成虚拟表6

7:select:在虚拟表6上进行查询操作,生成虚拟表7

8:order by:将虚拟表7按照order by后的条件进行排序升序或降序排列:desc,asc(默认asc降序)生成虚拟表8

9:limit:在虚拟表8上取出指定的行的记录,生成虚拟表9,并返回

以上是关于Mysql DQL语言执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

MySQL基本查询 SELECT的执行顺序(DQL语句)

MySQL条件查询 SELECT的执行顺序(DQL语句)

SQL的编写顺序和执行顺序,以及一些其他问题

06_MySQL DQL_分组查询

02_MySQL DQL_条件查询

07-mysql基础-mysql中的DQL-分页查询