select、from、 join、where、order by、group by、having、limit
解释
1) FROM (确定数据源)
查询的执行首先从FROM子句开始,确定数据的来源(表、视图、连接等)。
2) JOIN (如果有JOIN操作)
在FROM子句之后,SQL引擎会执行连接操作(JOIN),将多张表的数据结合起来。
3) WHERE (过滤行)
接下来,SQL引擎会对来自FROM和JOIN的数据进行过滤,保留符合条件的行。WHERE子句执行的是行级别的过滤。
4) GROUP BY (分组数据)
然后,SQL引擎会按照GROUP BY子句中的字段进行分组操作,将数据分为若干组。
5) HAVING (过滤组)
HAVING子句执行时会对已经分组的数据进行过滤,保留符合条件的组。与WHERE子句不同,HAVING是用于过滤分组后的数据。
6) SELECT (选择列)
在经过上述的操作后,SQL引擎会选择需要的列并进行返回。这个阶段是实际返回查询结果的地方。
7) ORDER BY (排序)
紧接着,SQL引擎会按照ORDER BY子句中指定的列对结果进行排序。
8) LIMIT (限制返回的行数)
最后,LIMIT子句限制查询结果的行数,只返回指定数量的行。
总结
①首先一定先确定数据源: from > on > join
②其次考虑条件以及聚合函数等:where > group by > 聚合函数 > having
③最后执行筛选类子句:select > distinct > order by > limit