文章詳情頁
MySQL語句執行順序和編寫順序實例解析
瀏覽:76日期:2023-10-14 13:48:11
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 視圖、觸發器以及存儲過程
相關文章:
1. MySQL中文亂碼問題解決方案2. MySql如何使用not in實現優化3. Microsoft Office Access隱藏和顯示字段的方法4. MySQL Delete 刪數據后磁盤空間未釋放的原因5. 淺談數據庫日期類型字段設計應該如何選擇6. MySQL性能優化之一條SQL在MySQL中執行的過程詳解7. MySQL分支選擇參考:Percona還是MariaDB8. 八步解決ACCESS自動編號問題(將SQL SERVER 2000數據庫,轉換為ACCESS數據庫)9. MySQL Innodb 存儲結構 和 存儲Null值 用法詳解10. MYSQL(電話號碼,身份證)數據脫敏的實現
排行榜
