歡迎您光臨本站 註冊首頁

MySQL語句執行順序和編寫順序實例解析

←手機掃碼閱讀     limiyoyo @ 2020-06-24 , reply:0

select語句完整語法:
 

  SELECT   DISTINCTFROMJOINONWHEREGROUP BYHAVINGORDER BYLIMIT

 

執行順序:
 

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(列名)不會。

                                                       

   


[limiyoyo ] MySQL語句執行順序和編寫順序實例解析已經有245次圍觀

http://coctec.com/docs/mysql/show-post-239524.html