最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡(jiǎn)單了解MySQL SELECT執(zhí)行順序

 更新時(shí)間:2019年05月22日 09:26:07   作者:freefish_yzx  
MySQL數(shù)據(jù)據(jù)庫(kù)中我們經(jīng)常使用SQL SELECT語(yǔ)句來查詢數(shù)據(jù),那么關(guān)于它的執(zhí)行順序,下面小編來帶大家簡(jiǎn)單了解一下

SELECT語(yǔ)句的完整語(yǔ)法為:

(7) SELECT 
(8) DISTINCT <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) HAVING <having_condition>
(9) ORDER BY <order_by_condition>
(10) LIMIT <limit_number>

說明:語(yǔ)法前面的序號(hào)為SELECT執(zhí)行順序

MySQL的SELECT執(zhí)行順序一共分為10步,如上所標(biāo)注的那樣,最先執(zhí)行的是FROM操作,最后執(zhí)行的是LIMIT操作。其中每一次操作都會(huì)產(chǎn)生一張?zhí)摂M的表,這個(gè)虛擬的表作為一個(gè)處理的輸入,只是這些虛擬的表對(duì)用戶來說是透明的,但是只有最后一個(gè)虛擬的表才會(huì)被作為結(jié)果返回。如果沒有在語(yǔ)句中指定某一個(gè)子句,那么將會(huì)跳過相應(yīng)的步驟。

下面我們來具體分析一下查詢處理的每一個(gè)階段

SELECT a.customer_id, COUNT(b.order_id) as total_orders
 FROM table1 AS a
 LEFT JOIN table2 AS b
 ON a.customer_id = b.customer_id
 WHERE a.city = 'hangzhou'
 GROUP BY a.customer_id
 HAVING count(b.order_id) < 2
 ORDER BY total_orders DESC;

1、FORM: 對(duì)FROM左邊的表和右邊的表計(jì)算笛卡爾積,產(chǎn)生虛表VT1。

2、ON: 對(duì)虛表VT1進(jìn)行ON過濾,只有那些符合<join-condition>的行才會(huì)被記錄在虛表VT2中。

3、JOIN: 如果指定了OUTER JOIN(比如left join、 right join),那么保留表中未匹配的行就會(huì)作為外部行添加到虛擬表VT2中,產(chǎn)生虛擬表VT3。

4、WHERE: 對(duì)虛擬表VT3進(jìn)行WHERE條件過濾。只有符合<where-condition>的記錄才會(huì)被插入到虛擬表VT4中。

5、GROUP BY: 根據(jù)group by子句中的列,對(duì)VT4中的記錄進(jìn)行分組操作,產(chǎn)生VT5。

6、HAVING: 對(duì)虛擬表VT5應(yīng)用having過濾,只有符合<having-condition>的記錄才會(huì)被 插入到虛擬表VT6中。

7、SELECT: 執(zhí)行select操作,選擇指定的列,插入到虛擬表VT7中。

8、DISTINCT: 對(duì)VT7中的記錄進(jìn)行去重。產(chǎn)生虛擬表VT8.

9、ORDER BY: 將虛擬表VT8中的記錄按照<order_by_list>進(jìn)行排序操作,產(chǎn)生虛擬表VT9.

10、LIMIT:取出指定行的記錄,產(chǎn)生虛擬表VT10, 并將結(jié)果返回。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mysql連接數(shù)的基本知識(shí)講解

    Mysql連接數(shù)的基本知識(shí)講解

    這篇文章主要介紹了Mysql連接數(shù)的基本知識(shí),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • 實(shí)戰(zhàn)MySQL升級(jí)的最佳方法

    實(shí)戰(zhàn)MySQL升級(jí)的最佳方法

    這篇文章給大家從理論到實(shí)戰(zhàn)詳細(xì)分享了MySQL升級(jí)的最佳方法,有需要的朋友跟著學(xué)習(xí)操作下吧。
    2017-12-12
  • 解決MySQL 5.7中定位DDL被阻塞的問題

    解決MySQL 5.7中定位DDL被阻塞的問題

    這篇文章主要介紹了MySQL 5.7中如何定位DDL被阻塞的問題,在MySQL 5.7中,針對(duì)MDL,引入了一張新表performance_schema.metadata_locks,該表可對(duì)外展示MDL的相關(guān)信息,包括其作用對(duì)象,類型及持有等待情況。對(duì)此問題感興趣的朋友參考下本文
    2018-08-08
  • Mac 下 MySQL5.7.22的安裝過程

    Mac 下 MySQL5.7.22的安裝過程

    這篇文章主要介紹了Mac 下 MySQL5.7.22的安裝過程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-05-05
  • 查看修改MySQL表結(jié)構(gòu)命令

    查看修改MySQL表結(jié)構(gòu)命令

    這篇文章主要介紹了查看修改MySQL表結(jié)構(gòu)命令,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • mysql 5.5 開啟慢日志slow log的方法(log_slow_queries)

    mysql 5.5 開啟慢日志slow log的方法(log_slow_queries)

    MySQL中提供了一個(gè)慢查詢的日志記錄功能,可以把查詢SQL語(yǔ)句時(shí)間大于多少秒的語(yǔ)句寫入慢查詢?nèi)罩荆粘>S護(hù)中可以通過慢查詢?nèi)罩镜挠涗浶畔⒖焖贉?zhǔn)確地判斷問題所在
    2016-05-05
  • MySql?查詢符合條件的最新數(shù)據(jù)行

    MySql?查詢符合條件的最新數(shù)據(jù)行

    這篇文章主要介紹了MySql?怎么查出符合條件的最新的數(shù)據(jù)行,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 解決MySql客戶端秒退問題(找不到my.ini)

    解決MySql客戶端秒退問題(找不到my.ini)

    這篇文章主要介紹了解決MySql客戶端秒退問題(找不到my.ini),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • MySQL 替換某字段內(nèi)部分內(nèi)容的UPDATE語(yǔ)句

    MySQL 替換某字段內(nèi)部分內(nèi)容的UPDATE語(yǔ)句

    至于字段內(nèi)部分內(nèi)容:比如替換標(biāo)題里面的產(chǎn)品價(jià)格,接下來為你詳細(xì)介紹下UPDATE語(yǔ)句的寫法,感興趣的你可以參考下哈,希望可以幫助到你
    2013-03-03
  • 解析在MYSQL語(yǔ)法中使用trim函數(shù)刪除兩側(cè)字符

    解析在MYSQL語(yǔ)法中使用trim函數(shù)刪除兩側(cè)字符

    本篇文章是對(duì)在MYSQL語(yǔ)法中使用trim函數(shù)刪除兩側(cè)字符的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07

最新評(píng)論

罗山县| 洪洞县| 石阡县| 泸溪县| 疏附县| 黄龙县| 壶关县| 平安县| 南郑县| 莲花县| 德清县| 丰宁| 东方市| 大石桥市| 怀安县| 万安县| 阿克| 峨眉山市| 开化县| 广南县| 枣强县| 宝丰县| 库车县| 公主岭市| 班戈县| 阳泉市| 汤原县| 南部县| 葵青区| 同江市| 曲阜市| 长岭县| 高安市| 儋州市| 西安市| 天镇县| 苏尼特左旗| 北川| 满城县| 樟树市| 黄石市|