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


1、MySQL的語句執行順序

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

2、子查詢執行順序

參考:SQL嵌套子查詢和相關子查詢的執行過程有什么區別(推薦) - 南無 - 博客園(包含詳細的舉例和步驟說明)

2.1 子查詢分類

子查詢又稱內部查詢,而包含子查詢的語句稱之外部查詢(又稱主查詢)。
所有的子查詢可以分為兩類,即相關子查詢和非相關子查詢。

  • 相關子查詢:執行依賴於外部查詢的數據,外部查詢執行一行,子查詢就執行一次。
  • 非相關子查詢(又叫嵌套子查詢):獨立於外部查詢的子查詢,子查詢總共執行一次,執行完畢后將值傳遞給外部查詢。

2.2 子查詢執行過程

2.2.1 相關子查詢執行過程

執行過程

  1. 從外層查詢中取出一個元組(即一行),將元組相關列的值傳給內層查詢。
  2. 執行內層查詢,得到子查詢操作的值。
  3. 外查詢根據子查詢返回的結果或結果集得到滿足條件的行。
  4. 然后外層查詢取出下一個元組重復做步驟1-3,直到外層的元組全部處理完畢。

注意:什么是元組?關系是一張表,表中的每行bai(即數據庫中的每條記錄)就是一個元組。

2.2.2 非相關子查詢(嵌套子查詢)執行過程

執行過程

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM