MySQL語(yǔ)句執(zhí)行順序和編寫順序?qū)嵗馕?/h1>
瀏覽:104日期:2023-10-14 13:48:11
select語(yǔ)句完整語(yǔ)法:
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則對(duì) FROM 子句中的前兩個(gè)表執(zhí)行笛卡爾積(交叉聯(lián)接),生成臨時(shí)表(n×m行)
on:對(duì)以上臨時(shí)表進(jìn)行條件篩選
left/right (join):補(bǔ)充左表或右表保持完整。如果有關(guān)聯(lián)多個(gè)表,則中間表對(duì)下個(gè)表繼續(xù)以上兩步的操作
where:過(guò)濾表中數(shù)據(jù)的條件 group by:如何將上面過(guò)濾出的數(shù)據(jù)分組sum:聚合函數(shù)
having:對(duì)上面已經(jīng)分組的數(shù)據(jù)進(jìn)行過(guò)濾的條件 select:查看結(jié)果集中的哪個(gè)列,或列的計(jì)算結(jié)果distinct:
order by :按照什么樣的順序來(lái)查看返回的數(shù)據(jù) limit:限制查詢結(jié)果返回的數(shù)量 (2)on與where的用法區(qū)別:
a.on后面的篩選條件主要是針對(duì)的是關(guān)聯(lián)表【而對(duì)于主表刷選條件不適用】。 b.如果是想再連接完畢后才篩選就應(yīng)把條件放置于where后面。對(duì)于關(guān)聯(lián)表我們要區(qū)分對(duì)待。如果是要條件查詢后才連接應(yīng)該把查詢件放置于on后。 c.對(duì)于主表的篩選條件應(yīng)放在where后面,不應(yīng)該放在on后面 (3)having和where的用法區(qū)別:
a.having只能用在group by之后,對(duì)分組后的結(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ì)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
標(biāo)簽:
MySQL
數(shù)據(jù)庫(kù)
相關(guān)文章:
1. 數(shù)據(jù)庫(kù)相關(guān)的幾個(gè)技能:ACCESS轉(zhuǎn)SQL2. mysql的like模式3. 詳解MySQL中的數(shù)據(jù)類型和schema優(yōu)化4. Mysql入門系列:對(duì)MYSQL查詢中有疑問(wèn)的數(shù)據(jù)進(jìn)行編碼5. Mysql入門系列:建立MYSQL客戶機(jī)程序的一般過(guò)程6. mysql查詢表是否被鎖的方法7. SQL Server事務(wù)日志意外增大的處理方法8. mysql判斷表是否存在然后批量刪除的操作10. 盤點(diǎn)SqlServer 分頁(yè)方式和拉姆達(dá)表達(dá)式分頁(yè)
select語(yǔ)句完整語(yǔ)法:
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則對(duì) FROM 子句中的前兩個(gè)表執(zhí)行笛卡爾積(交叉聯(lián)接),生成臨時(shí)表(n×m行)
on:對(duì)以上臨時(shí)表進(jìn)行條件篩選
left/right (join):補(bǔ)充左表或右表保持完整。如果有關(guān)聯(lián)多個(gè)表,則中間表對(duì)下個(gè)表繼續(xù)以上兩步的操作
where:過(guò)濾表中數(shù)據(jù)的條件 group by:如何將上面過(guò)濾出的數(shù)據(jù)分組sum:聚合函數(shù)
having:對(duì)上面已經(jīng)分組的數(shù)據(jù)進(jìn)行過(guò)濾的條件 select:查看結(jié)果集中的哪個(gè)列,或列的計(jì)算結(jié)果distinct:
order by :按照什么樣的順序來(lái)查看返回的數(shù)據(jù) limit:限制查詢結(jié)果返回的數(shù)量(2)on與where的用法區(qū)別:
a.on后面的篩選條件主要是針對(duì)的是關(guān)聯(lián)表【而對(duì)于主表刷選條件不適用】。 b.如果是想再連接完畢后才篩選就應(yīng)把條件放置于where后面。對(duì)于關(guān)聯(lián)表我們要區(qū)分對(duì)待。如果是要條件查詢后才連接應(yīng)該把查詢件放置于on后。 c.對(duì)于主表的篩選條件應(yīng)放在where后面,不應(yīng)該放在on后面(3)having和where的用法區(qū)別:
a.having只能用在group by之后,對(duì)分組后的結(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ì)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
