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

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

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

SELECT語句的完整語法為:

(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>

說明:語法前面的序號為SELECT執(zhí)行順序

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

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

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: 對FROM左邊的表和右邊的表計(jì)算笛卡爾積,產(chǎn)生虛表VT1。

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

    Mac 下 MySQL5.7.22的安裝過程

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

桑日县| 霞浦县| 邹平县| 井冈山市| 邓州市| 高州市| 福贡县| 吴江市| 清新县| 海口市| 沙洋县| 扶沟县| 重庆市| 东平县| 大兴区| 嘉义市| 沾化县| 额尔古纳市| 靖远县| 泸溪县| 广丰县| 博客| 平潭县| 五原县| 虞城县| 巢湖市| 睢宁县| 洛扎县| 蕉岭县| 抚州市| 平陆县| 凤城市| 遂宁市| 彰化县| 虹口区| 遵义市| 郎溪县| 印江| 兴山县| 清徐县| 贵德县|