Mysql中查询语句的执行顺序

关于mysql查询语句的执行顺序也是面试和笔试中常问的考点之一,下面我们以实际的查询语句来看看查询语句的执行顺序到底是怎么样的。
我们以实际案例来进行分析
现在我们有stu学生表、school学校表,具体内容如下
学生表主要信息
Mysql中查询语句的执行顺序_第1张图片
学校表主要信息
Mysql中查询语句的执行顺序_第2张图片
现在我们有以下的查询语句

SELECT
	*
FROM stu LEFT JOIN school
ON stu.school=school.sname
WHERE stu.grade >97
Group BY stu.school
having stu.age>=20
ORDER BY stu.age
LIMIT 0,2;

上述语句的执行顺序为
Mysql中查询语句的执行顺序_第3张图片
执行结果
Mysql中查询语句的执行顺序_第4张图片
我们简单分析一下

  1. 首先执行on语句之后的内容,我们首先要知道我们的数据从哪来,然后本来应该是先执行from语句,但是from语句中因为需要进行条件判断即on语句才能知道具体的数据来源,所以on语句先执行;
  2. on语句执行完之后,就是from语句了,因为我们首先要确定数据from自哪里;
  3. from语句执行完后,我们就要对整体的数据源进行筛选了,挑选出符合条件的记录。
  4. 然后对符合where条件的记录进行分组,即执行group by语句;
  5. having是分组后筛选,所以排在group by之后
  6. 上述操作都是进行数据的筛选,数据筛选完毕以后,我们整体的结果集就出来了,因此执行select语句,拿到符合条件的记录数;
  7. 然后对记录数进行排序;
  8. 最后进行内容的分页。

你可能感兴趣的:(Mysql)