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_condition>
LIMIT limit_number>
執行順序:
from →join →on →where →group by→having→select→order by→limit
(1)各個關鍵詞的作用:
from:需要從哪個數據表檢索數據,如果有join則對 FROM 子句中的前兩個表執行笛卡爾積(交叉聯接),生成臨時表(n×m行)
on:對以上臨時表進行條件篩選
left/right (join):補充左表或右表保持完整。如果有關聯多個表,則中間表對下個表繼續以上兩步的操作
- where:過濾表中數據的條件
- group by:如何將上面過濾出的數據分組
sum:聚合函數
- having:對上面已經分組的數據進行過濾的條件
- select:查看結果集中的哪個列,或列的計算結果
distinct:
- order by :按照什么樣的順序來查看返回的數據
- limit:限制查詢結果返回的數量
(2)on與where的用法區別:
- a.on后面的篩選條件主要是針對的是關聯表【而對于主表刷選條件不適用】。
- b.如果是想再連接完畢后才篩選就應把條件放置于where后面。對于關聯表我們要區分對待。如果是要條件查詢后才連接應該把查詢件放置于on后。
- c.對于主表的篩選條件應放在where后面,不應該放在on后面
(3)having和where的用法區別:
- a.having只能用在group by之后,對分組后的結果進行篩選(即使用having的前提條件是分組)。
- b.where肯定在group by 之前,即也在having之前。
- c.where后的條件表達式里不允許使用聚合函數,而having可以。
(4)count用法
使用count(列名)當某列出現null值的時候,count(*)仍然會計算,但是count(列名)不會。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- mysql代碼執行結構實例分析【順序、分支、循環結構】
- 簡單了解mysql語句書寫和執行順序
- 簡單了解MySQL SELECT執行順序
- 有關mysql中sql的執行順序的小問題
- SQL語句執行深入講解(MySQL架構總覽->查詢執行流程->SQL解析順序)
- sql和MySQL的語句執行順序分析
- 淺談mysql執行過程以及順序