MySQL的語句執行順序和子查詢執行順序

2022-03-21 13:51:17 字數 509 閱讀 9060

見原文吧(mysql的語句執行順序 - houqijun - ),我再描述也沒人家好...

參考:sql巢狀子查詢和相關子查詢的執行過程有什麼區別(推薦) - 南無 - (包含詳細的舉例和步驟說明)

子查詢又稱內部查詢,而包含子查詢的語句稱之外部查詢(又稱主查詢)。

所有的子查詢可以分為兩類,即相關子查詢和非相關子查詢。

執行過程

從外層查詢中取出乙個元組(即一行),將元組相關列的值傳給內層查詢。

執行內層查詢,得到子查詢操作的值。

外查詢根據子查詢返回的結果或結果集得到滿足條件的行。

然後外層查詢取出下乙個元組重複做步驟1-3,直到外層的元組全部處理完畢。

注意:什麼是元組?關係是一張表,表中的每行bai(即資料庫中的每條記錄)就是乙個元組。

執行過程

執行子查詢,其結果不被顯示,而是傳遞給外部查詢,作為外部查詢的條件使用。

執行外部查詢,並顯示整個結果。

MySQL的語句執行順序

mysql的語句一共分為11步,如下圖所標註的那樣,最先執行的總是from操作,最後執行的是limit操作。其中每乙個操作都會產生一張虛擬的表,這個虛擬的表作為乙個處理的輸入,只是這些虛擬的表對使用者來說是透明的,但是只有最後乙個虛擬的表才會被作為結果返回。如果沒有在語句中指定某乙個子句,那麼將會跳...

MySQL語句執行順序和編寫順序例項解析

select語句完整語法 select distinct from join on where 程式設計客棧here condition group by h ing 程式設計客棧 order by limit 執行順序 from join on where group by h ing selec...

for迴圈的語句執行順序

在乙個技術qq群中,試著做了一道c的題,感覺是考察for迴圈的執行流程.原題 在c語言中,下列 的輸出結果是 選擇一項 void main j printf d,d i,j a 0,109,9 b 0,10 10,10c 10,10d 9,11 群裡居然有不少人都選了b,那個提問者還一直在問正確的結...