在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    一文講懂SQL語法順序與執(zhí)行順序

    大家好,我是寧一。

    今天講解SQL教程第17課:SQL語句書寫順序與執(zhí)行順序。

    SQL 語句的書寫順序與執(zhí)行順序不是一致的,我們通過這節(jié)課來搞清楚。

    1、書寫順序

    語句書寫順序很重要,順序不對會報錯的。

    我們前面的課程已經(jīng)學過SELECT、WHERE、ORDER BY、LIMIT、JOIN、UNION、GROUP BY、HAVING語句用法。

    如果這些語句在SQL中同時存在,書寫順序是這樣的:

    SELECT FROM JOIN ON WHERE GROUP BY HAVING UNIONORDER BY LIMIT ;

    看著比較復(fù)雜,不過我們不需要特意去背,多進行一些實戰(zhàn)練習,自然而然就記住了。

    2、執(zhí)行順序

    1.FORM:選擇from后面跟的表,產(chǎn)生虛擬表1。

    2.ON:ON是JOIN的連接條件,符合連接條件的行會被記錄在虛擬表2中。

    3.JOIN:如果指定了LEFT JOIN,那么保留表中未匹配的行就會作為外部行添加到虛擬表2中,產(chǎn)生虛擬表3。如果有多個JOIN鏈接,會重復(fù)執(zhí)行步驟1~3,直到處理完所有表。

    4.WHERE:對虛擬表3進行WHERE條件過濾,符合條件的記錄會被插入到虛擬表4中。

    5.GROUP BY:根據(jù)GROUP BY子句中的列,對虛擬表2中的記錄進行分組操作,產(chǎn)生虛擬表5。

    6.HAVING:對虛擬表5進行HAVING過濾,符合條件的記錄會被插入到虛擬表6中。

    7.SELECT:SELECT到一步才執(zhí)行,選擇指定的列,插入到虛擬表7中。

    8.UNION:UNION連接的兩個SELECT查詢語句,會重復(fù)執(zhí)行步驟1~7,產(chǎn)生兩個虛擬表7,UNION會將這些記錄合并到虛擬表8中。

    9.ORDER BY: 將虛擬表8中的記錄進行排序,虛擬表9。

    10.LIMIT:取出指定行的記錄,返回結(jié)果集。

    3、總結(jié):

    書寫順序:SELECT -> FROM -> JOIN -> ON -> WHERE -> GROUP BY -> HAVING -> UNION -> ORDER BY ->LIMIT

    執(zhí)行順序:FROM -> ON -> JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> UNION -> ORDER BY ->LIMIT

    4、需要注意的地方:

    1.SELECT語句總是寫在最前面,但在大部分語句之后才執(zhí)行。所以在SQL語句中,我們不能在WHERE、GROUP BY、 HAVING語句中使用在 SELECT 中設(shè)定的別名。

    但是MYSQL有個特性,在GROUP BY、 HAVING語句中,可以使用 SELECT 中設(shè)定的別名。這不是因為MYSQL中會提前執(zhí)行SELECT,而是因為在GROUP BY這一步返回了游標,大家了解一下就好。

    2.無論是書寫順序,還是執(zhí)行順序,UNION 都是排在 ORDER BY 前面的。SQL語句會將所有UNION 段合并后,再進行排序。

    我們本節(jié)課程總結(jié)了sql語句的書寫順序和執(zhí)行順序,理解這些有助于我們對sql語句進行優(yōu)化,提高我們的數(shù)據(jù)庫理解能力。建立我們后面編寫復(fù)雜SQL的基礎(chǔ)。

    如果能掌握SQL語句書寫順序和執(zhí)行順序,那么恭喜你,已經(jīng)可以解決大部分的SQL問題了。

    下節(jié)課我們會開始講子查詢,理解了這節(jié)課的內(nèi)容,后面編寫更復(fù)雜的SQL也就得心應(yīng)手了~

    點擊關(guān)注,更新課程第一時間通知哦~

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月22日 12:15
    下一篇 2022年6月22日 12:15

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息