女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SQL的執行順序圖解

jf_ro2CN3Fa ? 來源:csdn ? 2023-09-16 12:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

數據的關聯過程

from&join&where

group by

having&where

select

order by

limit

這是一條標準的查詢語句:

e509d22c-53b0-11ee-a25d-92fbcf53809c.png

這是我們實際上SQL執行順序:

我們先執行from,join來確定表之間的連接關系,得到初步的數據

where對數據進行普通的初步的篩選

group by 分組

各組分別執行having中的普通篩選或者聚合函數篩選。

然后把再根據我們要的數據進行select,可以是普通字段查詢也可以是獲取聚合函數的查詢結果,如果是集合函數,select的查詢結果會新增一條字段

將查詢結果去重distinct

最后合并各組的查詢結果,按照order by的條件進行排序

eb1453cc-53b0-11ee-a25d-92fbcf53809c.png

數據的關聯過程

數據庫中的兩張表

eb5d540a-53b0-11ee-a25d-92fbcf53809c.png

from&join&where

用于確定我們要查詢的表的范圍,涉及哪些表。

選擇一張表,然后用join連接

fromtable1jointable2ontable1.id=table2.id

選擇多張表,用where做關聯條件

fromtable1,table2wheretable1.id=table2.id

我們會得到滿足關聯條件的兩張表的數據,不加關聯條件會出現笛卡爾積。

eb7739b0-53b0-11ee-a25d-92fbcf53809c.png

group by

按照我們的分組條件,將數據進行分組,但是不會篩選數據。

比如我們按照即id的奇偶分組

eb918a86-53b0-11ee-a25d-92fbcf53809c.png

having&where

having中可以是普通條件的篩選,也能是聚合函數。而where只能是普通函數,一般情況下,有having可以不寫where,把where的篩選放在having里,SQL語句看上去更絲滑。

使用where再group by

先把不滿足where條件的數據刪除,再去分組

使用group by再having

先分組再刪除不滿足having條件的數據,這兩種方法有區別嗎,幾乎沒有!

舉個例子:

100/2=50,此時我們把100拆分(10+10+10+10+10…)/2=5+5+5+…+5=50,只要篩選條件沒變,即便是分組了也得滿足篩選條件,所以where后group by 和group by再having是不影響結果的!

不同的是,having語法支持聚合函數,其實having的意思就是針對每組的條件進行篩選。我們之前看到了普通的篩選條件是不影響的,但是having還支持聚合函數,這是where無法實現的。

當前數據分組情況

eb918a86-53b0-11ee-a25d-92fbcf53809c.png

執行having的篩選條件,可以使用聚合函數。篩選掉工資小于各組平均工資的having salary

ebc315f6-53b0-11ee-a25d-92fbcf53809c.png

select

分組結束之后,我們再執行select語句,因為聚合函數是依賴于分組的,聚合函數會單獨新增一個查詢出來的字段,這里用紫色表示,這里我們兩個id重復了,我們就保留一個id,重復字段名需要指向來自哪張表,否則會出現唯一性問題。最后按照用戶名去重。

selectemployee.id,distinctname,salary,avg(salary)

ebd4b950-53b0-11ee-a25d-92fbcf53809c.png

將各組having之后的數據再合并數據。

f1e28674-53b0-11ee-a25d-92fbcf53809c.png

order by

最后我們執行order by 將數據按照一定順序排序,比如這里按照id排序。如果此時有limit那么查詢到相應的我們需要的記錄數時,就不繼續往下查了。

f1fff146-53b0-11ee-a25d-92fbcf53809c.png

limit

記住limit是最后查詢的,為什么呢?假如我們要查詢年級最小的三個數據,如果在排序之前就截取到3個數據。實際上查詢出來的不是最小的三個數據而是前三個數據了,記住這一點。

我們如果limit 0,3竊取前三個數據再排序,實際上最少工資的是2000,3000,4000。你這里只能是4000,5000,8000了。

f21331c0-53b0-11ee-a25d-92fbcf53809c.png

編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7252

    瀏覽量

    91694
  • SQL
    SQL
    +關注

    關注

    1

    文章

    783

    瀏覽量

    45011

原文標題:圖解 SQL 的執行順序,一目了然!

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MySQL的執行過程 SQL語句性能優化常用策略

    回顧 MySQL 的執行過程,幫助介紹如何進行 sql 優化。
    的頭像 發表于 12-12 10:26 ?943次閱讀
    MySQL的<b class='flag-5'>執行</b>過程 <b class='flag-5'>SQL</b>語句性能優化常用策略

    連接oracle數據庫,封裝sql執行子vi

    連接oracle數據庫,封裝sql執行子vi。連接oracle數據庫可以安裝oracle客戶端,或者通過odbc的方式去連接。連接后,可通過封裝的子vi,執行sql語句。
    發表于 07-03 12:07

    ARM架構應用實例01順序執行

    ARM嵌入式應用程序架構設計實例精講--ARM架構應用實例01順序執行
    發表于 07-07 18:24 ?3次下載

    ARM應用程序構架_順序執行模板

    ARM嵌入式應用程序架構設計實例精講--ARM應用程序構架01順序執行模板
    發表于 07-08 11:08 ?6次下載

    mfc程序執行流程小結,MFC程序的執行順序

     摘要:本文章主要以MFC程序的執行流程、執行順序執行過程的剖析做出的結論,下面一起來看看原文的具體介紹。
    發表于 12-08 15:48 ?9758次閱讀
    mfc程序<b class='flag-5'>執行</b>流程小結,MFC程序的<b class='flag-5'>執行</b><b class='flag-5'>順序</b>

    1433端口的SQL TOOL執行命令錯誤應該如何修復詳細說明

    然后用SQL TOOLS連接主機,進行SQL或者CMD命令執行,從而 得主機的控制權,但是服務器的管理人員通常會把一些不安全的漏洞補上,所以用sql tools直接
    發表于 11-22 16:20 ?2次下載

    如何通過explain來驗證sql執行順序

    關于 sql 語句的執行順序網上有很多資料,但是大多都沒進行驗證,并且很多都有點小錯誤,尤其是對于 select 和 group by 執行的先后
    的頭像 發表于 09-07 16:24 ?2971次閱讀
    如何通過explain來驗證<b class='flag-5'>sql</b>的<b class='flag-5'>執行</b><b class='flag-5'>順序</b>

    一條SQL語句是怎么被執行

    一直是想知道一條SQL語句是怎么被執行的,它執行順序是怎樣的,然后查看總結各方資料,就有了下面這一篇博文了。 本文將從MySQL總體架構---》查詢
    的頭像 發表于 09-12 09:44 ?1709次閱讀
    一條<b class='flag-5'>SQL</b>語句是怎么被<b class='flag-5'>執行</b>的

    sql server執行os-shell

    條件:數據庫權限必須是dba權限可利用sql-shll進行命令執行,部分常用ql語句:
    的頭像 發表于 10-24 17:42 ?2570次閱讀

    系統上線時SQL腳本的9大坑

    有些小公司,SQL腳本是開發自己執行的,有很大的風險。 有些大廠,有專業的DBA把關,但DBA也不是萬能的,還是有可能會讓一些錯誤的SQL腳本被生產環境執行了,比如:update
    的頭像 發表于 03-24 14:25 ?651次閱讀

    sql執行順序優先級是什么

    這是我們實際上SQL執行順序: 我們先執行from,join來確定表之間的連接關系,得到初步的數據 where對數據進行普通的初步的篩選
    發表于 08-18 12:37 ?1752次閱讀
    <b class='flag-5'>sql</b><b class='flag-5'>執行</b><b class='flag-5'>順序</b>優先級是什么

    sql where條件的執行順序

    SQL語句中的WHERE條件是用來篩選數據的,它決定了哪些數據會被返回給用戶。WHERE條件的執行順序是影響SQL語句性能的一個重要因素,正確地理解和優化WHERE條件的
    的頭像 發表于 11-23 11:31 ?2752次閱讀

    sql的where條件多個and順序

    SQL中,WHERE子句用于過濾查詢結果以提供符合特定條件的記錄。當有多個AND操作符時,WHERE子句的順序并不會影響查詢結果,但是正確的AND操作符順序可以提高查詢的可讀性和性能。 首先,我們
    的頭像 發表于 11-23 11:33 ?4473次閱讀

    oracle執行sql查詢語句的步驟是什么

    Oracle數據庫是一種常用的關系型數據庫管理系統,具有強大的SQL查詢功能。Oracle執行SQL查詢語句的步驟包括編寫SQL語句、解析SQL
    的頭像 發表于 12-06 10:49 ?1333次閱讀

    Oracle如何執行sql腳本文件

    Oracle是一種關系型數據庫管理系統,可用于存儲、查詢和管理大量的數據。在Oracle中,可以通過執行SQL腳本文件來一次性地執行多個SQL語句或者批量處理數據。在下面的文章中,我將
    的頭像 發表于 12-06 10:51 ?7611次閱讀
    主站蜘蛛池模板: 卫辉市| 齐河县| 桑日县| 胶州市| 清苑县| 桐庐县| 通海县| 绥宁县| 长阳| 伊川县| 边坝县| 湖北省| 三都| 三门峡市| 读书| 伊川县| 建始县| 惠水县| 定远县| 阳东县| 梁平县| 仁布县| 若羌县| 东光县| 达拉特旗| 西青区| 普兰店市| 乌拉特后旗| 九龙县| 龙陵县| 中方县| 津市市| 监利县| 麻江县| 西林县| 常宁市| 清苑县| 天峨县| 福州市| 广平县| 山丹县|