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