MySQL語句執(zhí)行順序和編寫順序?qū)嵗馕?/h1>
更新時(shí)間:2020年06月23日 15:01:50 作者:cknds
這篇文章主要介紹了MySQL語句執(zhí)行順序和編寫順序?qū)嵗馕?文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
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>
執(zhí)行順序:
from →join →on →where →group by→having→select→order by→limit
(1)各個(gè)關(guān)鍵詞的作用:
from:需要從哪個(gè)數(shù)據(jù)表檢索數(shù)據(jù),如果有join則對 FROM 子句中的前兩個(gè)表執(zhí)行笛卡爾積(交叉聯(lián)接),生成臨時(shí)表(n×m行)
on:對以上臨時(shí)表進(jìn)行條件篩選
left/right (join):補(bǔ)充左表或右表保持完整。如果有關(guān)聯(lián)多個(gè)表,則中間表對下個(gè)表繼續(xù)以上兩步的操作
- where:過濾表中數(shù)據(jù)的條件
- group by:如何將上面過濾出的數(shù)據(jù)分組
sum:聚合函數(shù)
- having:對上面已經(jīng)分組的數(shù)據(jù)進(jìn)行過濾的條件
- select:查看結(jié)果集中的哪個(gè)列,或列的計(jì)算結(jié)果
distinct:
- order by :按照什么樣的順序來查看返回的數(shù)據(jù)
- limit:限制查詢結(jié)果返回的數(shù)量
(2)on與where的用法區(qū)別:
- a.on后面的篩選條件主要是針對的是關(guān)聯(lián)表【而對于主表刷選條件不適用】。
- b.如果是想再連接完畢后才篩選就應(yīng)把條件放置于where后面。對于關(guān)聯(lián)表我們要區(qū)分對待。如果是要條件查詢后才連接應(yīng)該把查詢件放置于on后。
- c.對于主表的篩選條件應(yīng)放在where后面,不應(yīng)該放在on后面
(3)having和where的用法區(qū)別:
- a.having只能用在group by之后,對分組后的結(jié)果進(jìn)行篩選(即使用having的前提條件是分組)。
- b.where肯定在group by 之前,即也在having之前。
- c.where后的條件表達(dá)式里不允許使用聚合函數(shù),而having可以。
(4)count用法
使用count(列名)當(dāng)某列出現(xiàn)null值的時(shí)候,count(*)仍然會(huì)計(jì)算,但是count(列名)不會(huì)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
-
設(shè)置MySQLroot賬戶密碼報(bào)錯(cuò)ERROR 1064 (42000): You 
在安裝mysql的時(shí)候,設(shè)置root賬戶密碼出現(xiàn)了ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds..錯(cuò)誤,本文小編給大家介紹了相關(guān)的解決方案,需要的朋友可以參考下 2023-12-12
-
Mysql詳細(xì)剖析數(shù)據(jù)庫中的存儲(chǔ)引擎
這篇文章詳細(xì)剖析了數(shù)據(jù)庫中的存儲(chǔ)引擎,存儲(chǔ)引擎是數(shù)據(jù)庫中非常關(guān)鍵的部分,有感興趣的小伙伴可以參考閱讀本文 2023-03-03
-
Windows下MySQL定時(shí)備份腳本的實(shí)現(xiàn)
這篇文章主要介紹了Windows下MySQL定時(shí)備份腳本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2020-12-12
-
Centos中安裝多個(gè)mysql數(shù)據(jù)的配置實(shí)例
最近因?yàn)閱挝豁?xiàng)目擴(kuò)充,需要在原線上數(shù)據(jù)庫服務(wù)器上加裝一個(gè)mysql實(shí)例(實(shí)際上就是從新編譯安裝一個(gè)非3306的自定義端口,不同目錄的mysql),研究了一天,終于順利搞定,這里把配置步驟發(fā)給大家,供大家學(xué)習(xí)使用 2014-04-04
-
MySQL InnoDB行記錄存儲(chǔ)結(jié)構(gòu)分析
工作中我們基本上都是用MySQL的InnoDB存儲(chǔ)引擎,但是大家有去了解過它的底層存儲(chǔ)結(jié)構(gòu)嗎,想必絕大部分人不知道或者說不知道怎么查相關(guān)知識(shí),剛好來看這篇文章就對了 2023-07-07
-
mysql如何將表結(jié)構(gòu)導(dǎo)出到excel
這篇文章主要介紹了mysql如何將表結(jié)構(gòu)導(dǎo)出到excel,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下 2020-09-09
最新評論
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>
執(zhí)行順序:
from →join →on →where →group by→having→select→order by→limit
(1)各個(gè)關(guān)鍵詞的作用:
from:需要從哪個(gè)數(shù)據(jù)表檢索數(shù)據(jù),如果有join則對 FROM 子句中的前兩個(gè)表執(zhí)行笛卡爾積(交叉聯(lián)接),生成臨時(shí)表(n×m行)
on:對以上臨時(shí)表進(jìn)行條件篩選
left/right (join):補(bǔ)充左表或右表保持完整。如果有關(guān)聯(lián)多個(gè)表,則中間表對下個(gè)表繼續(xù)以上兩步的操作
- where:過濾表中數(shù)據(jù)的條件
- group by:如何將上面過濾出的數(shù)據(jù)分組
sum:聚合函數(shù)
- having:對上面已經(jīng)分組的數(shù)據(jù)進(jìn)行過濾的條件
- select:查看結(jié)果集中的哪個(gè)列,或列的計(jì)算結(jié)果
distinct:
- order by :按照什么樣的順序來查看返回的數(shù)據(jù)
- limit:限制查詢結(jié)果返回的數(shù)量
(2)on與where的用法區(qū)別:
- a.on后面的篩選條件主要是針對的是關(guān)聯(lián)表【而對于主表刷選條件不適用】。
- b.如果是想再連接完畢后才篩選就應(yīng)把條件放置于where后面。對于關(guān)聯(lián)表我們要區(qū)分對待。如果是要條件查詢后才連接應(yīng)該把查詢件放置于on后。
- c.對于主表的篩選條件應(yīng)放在where后面,不應(yīng)該放在on后面
(3)having和where的用法區(qū)別:
- a.having只能用在group by之后,對分組后的結(jié)果進(jìn)行篩選(即使用having的前提條件是分組)。
- b.where肯定在group by 之前,即也在having之前。
- c.where后的條件表達(dá)式里不允許使用聚合函數(shù),而having可以。
(4)count用法
使用count(列名)當(dāng)某列出現(xiàn)null值的時(shí)候,count(*)仍然會(huì)計(jì)算,但是count(列名)不會(huì)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
設(shè)置MySQLroot賬戶密碼報(bào)錯(cuò)ERROR 1064 (42000): You 
在安裝mysql的時(shí)候,設(shè)置root賬戶密碼出現(xiàn)了ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds..錯(cuò)誤,本文小編給大家介紹了相關(guān)的解決方案,需要的朋友可以參考下2023-12-12Mysql詳細(xì)剖析數(shù)據(jù)庫中的存儲(chǔ)引擎
這篇文章詳細(xì)剖析了數(shù)據(jù)庫中的存儲(chǔ)引擎,存儲(chǔ)引擎是數(shù)據(jù)庫中非常關(guān)鍵的部分,有感興趣的小伙伴可以參考閱讀本文2023-03-03Windows下MySQL定時(shí)備份腳本的實(shí)現(xiàn)
這篇文章主要介紹了Windows下MySQL定時(shí)備份腳本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Centos中安裝多個(gè)mysql數(shù)據(jù)的配置實(shí)例
最近因?yàn)閱挝豁?xiàng)目擴(kuò)充,需要在原線上數(shù)據(jù)庫服務(wù)器上加裝一個(gè)mysql實(shí)例(實(shí)際上就是從新編譯安裝一個(gè)非3306的自定義端口,不同目錄的mysql),研究了一天,終于順利搞定,這里把配置步驟發(fā)給大家,供大家學(xué)習(xí)使用2014-04-04MySQL InnoDB行記錄存儲(chǔ)結(jié)構(gòu)分析
工作中我們基本上都是用MySQL的InnoDB存儲(chǔ)引擎,但是大家有去了解過它的底層存儲(chǔ)結(jié)構(gòu)嗎,想必絕大部分人不知道或者說不知道怎么查相關(guān)知識(shí),剛好來看這篇文章就對了2023-07-07mysql如何將表結(jié)構(gòu)導(dǎo)出到excel
這篇文章主要介紹了mysql如何將表結(jié)構(gòu)導(dǎo)出到excel,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下2020-09-09