1. 程式人生 > 其它 >SQL查詢語句的執行順序

SQL查詢語句的執行順序

SELECT語句定義

  • SELECT DISTINCT <select_list> FROM <left_table>
    <join_type> JOIN <right_table> ON <join_condition>
    WHERE <where_condition>
    GROUP BY <group_by_list>
    HAVING <having_condition>
    ORDER BY <order_by_list>
    LIMIT <offset,rows>

SELECT語句執行順序

SELECT語句中子句的執行順序與SELECT語句中子句的輸入順序是不一樣的,所以並不是從SELECT子句開始執行的,而是按照下面的順序執行:

  • 開始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->SELECT子句->ORDER BY子句->LIMIT子句->最終結果

MySQL的having語句

having與where的區別

  • 1.where:
    • 是作用在查詢結果進行分組之前,過濾掉不符合條件的資料。
    • where中不能包含聚合函式。(注意是:where後面子句不能有聚合函式,而在含有where中可以使用聚合函式)
    • 作用在group by和having字句前
    • 是作用於對錶與檢視
  • 2.having:
    • 是作用在查詢結果分組之後,篩選滿足條件的組,過濾掉資料。
    • 通常跟聚合函式一起使用。
    • having子句在聚合後對組記錄進行篩選。
    • 是作用於分組