SQL必知必會(1)--帶你瞭解SQL的各種子句

SQL語句的執行順序:

    下面按照在SQL語句中各關鍵詞的順序排放

  • 前面的第幾步是數據庫執行SQL語句時的執行順序
  • 我的排列順序是書寫SQL語句時各關鍵詞的排放順序,不要搞混。
  • –第五步:執行SELECT投影列

  • –第一步:執行FROM

  • –第二步:WHERE條件過濾

  • –第三步:GROUP BY分組

  • –第四步:HAVING條件過

  • –第六步:執行ORDER BY 排序   注:如果又使用到了MySQL中的limit關鍵字,則limit要放在order by之後。

 

ORDER BY子句(檢索數據的排序):

  • 可以按多個列進行排序,只有當第一個列的值相同時纔會按第二個列排序。

  • DESC表示降序排序,ASC表示升序排序(數據默認按升序排序,所以一般用不到)

  • ORDER BY子句永遠是SQL最後一句子句

 

WHERE子句條件操作符(部分冗餘操作符未列出):

  • =:等於

  • >:大於

  • <:小於

  • !=:不等於

  • >=:大於等於

  • <=:小於等於

  • BETWEEN:範圍檢查,例:SELECT name,age,sex FROM `user` WHERE age BETWEEN 10 AND 20。

  • IS NULL :爲NULL值(即未賦值),例:SELECT name,age,sex FROM `user` WHERE age IS NULL。

 

GROUP BY子句(對數據進行分組):

  • 可以包含多個列

  • 必須出現在WHERE子句之後,ORDER BY子句之前。

  • 子句中不能使用聚集函數

 

HAVING子句(過濾分組):

  • 一般與GROUP BY子句一塊使用,對GROUP BY子句產生的分組做篩選。

  • 支持所有WHERE操作符,句法相同

  • WHERE在分組前進行過濾,HAVING在分組進行過濾。

 

組合查詢:

  • 利用UNION操作符將多條SELECT語句的結果組成單個結果集。

  • UNION的使用很簡單,只需在多條SELECT語句之間加上UNION關鍵字即可。例:SELECT * FROM `user` WHERE age=15 UNION SELECT * FROM `user` WHERE age=20

  • UNION連接的每個查詢必須包含相同的列、表達式或聚集函數。

  • UNION查詢時自動去除了重複的行,要返回所有行可以使用UNION ALL;

  • 使用UNION時,只能使用一條ORDER BY子句,且必須出現在最後一條SELECT語句之後

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章