麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 圖解SQL執行順序,通俗易懂!

圖解SQL執行順序,通俗易懂!

來源:千鋒教育
發布人:wjy
時間: 2023-01-07 11:21:00 1673061660

  圖解 SQL 執行順序,通俗易懂!

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

圖解 SQL 執行順序1

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

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

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

  ●group by 分組

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

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

  ●將查詢結果去重distinct

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

圖解 SQL 執行順序2

  我們在理解SELECT語法的時候,還需要了解SELECT執行時的底層原理。只有這樣,才能讓我們對SQL有更深刻的認識。

  其中你需要記住SELECT查詢時的兩個順序:

  1.關鍵字的順序是不能顛倒的:

圖解 SQL 執行順序3

  2.SELECT語句的執行順序(在MySQL和Oracle中,SELECT執行順序基本相同):

  比如你寫了一個SQL語句,那么它的關鍵字順序和執行順序是下面這樣的:

  在SELECT語句執行這些步驟的時候,每個步驟都會產生一個虛擬表,然后將這個虛擬表傳入下一個步驟中作為輸入。需要注意的是,這些步驟隱含在SQL的執行過程中,對于我們來說是不可見的。

  數據的關聯過程

  數據庫中的兩張表

圖解 SQL 執行順序4

  from&join&where

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

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

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

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

圖解 SQL 執行順序5

  group by

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

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

圖解 SQL 執行順序6

  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無法實現的。

  當前數據分組情況

圖解 SQL 執行順序7

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

圖解 SQL 執行順序8

  select

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

圖解 SQL 執行順序9

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

圖解 SQL 執行順序10

  order by

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

圖解 SQL 執行順序11

  limit

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

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

圖解 SQL 執行順序12

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
開班信息
北京校區
  • 北京校區
  • 大連校區
  • 廣州校區
  • 成都校區
  • 杭州校區
  • 長沙校區
  • 合肥校區
  • 南京校區
  • 上海校區
  • 深圳校區
  • 武漢校區
  • 鄭州校區
  • 西安校區
  • 青島校區
  • 重慶校區
  • 太原校區
  • 沈陽校區
  • 南昌校區
  • 哈爾濱校區
主站蜘蛛池模板: 美女张开双腿让男生捅| 成人综合激情另类小说| 亚洲午夜精品久久久久久人妖 | 美女被狂揉下部羞羞动漫| 中文字幕在线视频在线看| 果冻传媒和精东影业在线观看| 欧美激情免费| 免费阿v| 日本强不卡在线观看| 精品久久久久久久久久中文字幕| 国产特级毛片aaaaaa高清| 精品女同一区二区三区免费站| 亚洲欧美中文日韩在线| 精品久久久久久久久中文字幕| 最近中文字幕最新在线视频| 欧美视频亚洲视频| 美女扒开尿眼让男人桶爽视频| 久久久久久久久久久久久久久| 国产成人精品怡红院在线观看| 久久精品中文字幕| 成年人免费视频观看| 老师的胸好软| 视频一区在线| 俺去ye| 美女让男人桶出水的网站| 国产91精品久久久久久久 | 天天拍拍夜夜出水| 亚洲最大成人网色| 国产激情视频一区二区三区| 一级电影毛片| 国产乱码卡一卡2卡三卡四 | 大学生日嘛批1| 污网站在线观看免费| 国产精品99| 欧美边吃奶边爱边做视频 | 国内精品久久久久影院网站| 欧美精品一区二区三区在线| 国产97人人超碰caoprom| 黑白配hd视频| 好男人资源在线www免费| 一区二区三区视频|