2.1、數據庫語句的執行順序
(一): 執行順序 from -> on -> join -> where -> group by -> having -> count(聚合函數) -> select -> distinct -> order by -> limit
(二): 執行步驟解釋:
(1)、from: 表示數據的來源
(2)、on: 表示數據的關聯表,執行完后生成一個臨時表t1,提供給下一步的操作使用
(3)、join: 將join表的數據補充到on執行完成的臨時表t1中,如: left join則將坐標剩余的數據添加到臨時表t1中,如果join超過3個,則重復on...join之間的步驟。
(4)、where: 根據攜帶的條件,從臨時表中篩選出符合條件的數據,並生成臨時表t2。
(5)、groub by: 根據攜帶的條件,將臨時表t2進行相應的數據分組,並形成臨時表t3,如果語句包含了group by則它后面的字段必須出現在select中或者出現在聚合函數中,否則會報SQL語法錯誤。
(6)、having: 篩選分組后臨時表t3的數據,得到臨時表t4。
(7)、count等聚合函數: 對臨時表進行指定字段的聚合函數操作,形成臨時表t5。
(8)、select: 從臨時表篩選出需要返回的數據,形成臨時表t6。
(9)、distinct: 對臨時表t6進行指定的去重篩選,形成臨時表t7。
(10)、order by: 對臨時表t7排序,形成臨時表t8。
(11)、limit: 篩選返回的數據條數 想要了解更多的執行過程的問題,可以點擊這里領取之前整理的一些面試題。