關於SQL語句的執行順序


首先,要清楚在一select語句中都會用到哪些關鍵字:

-----------select 

-----------from

-----------join

-----------where

-----------group by

-----------having

-----------order by

-----------limit

其次,要知道每執行一步就會生成一個對應的虛擬表:

明白這兩點再看執行的先后順序

1.from語句:不管是什么SQL語句,都得先知道要在哪張表中操作吧,所以要先執行form語句。然后會生成##虛擬表1##

例如:from   user    這時候的##虛擬表1##   就是user表

2.join(鏈接表):鏈接兩張或多張表,生成##虛擬表2##

3.where語句:①如果是單表查詢,那么就沒有join語句,此時where在##虛擬表1##操作,進行過濾,把滿足where條件的數據過濾出來,生成##虛擬表3##

                       ②如果多表查詢,在這個##虛擬表2##中操作,進行過濾,把滿足where條件的數據過濾出來,生成##虛擬表3##

4.group by語句:對滿足where條件的##虛擬表3##進行分組操作,分組完成后,生成##虛擬表4##

5.執行having過濾:對##虛擬表4##進行過濾,但是一般都是用聚合函數,生成##虛擬表5##

6.select語句:這個時候執行語句,select *  或 select  id ,name  ,password等,都是在##虛擬表5##中進行操作,把需要的字段從##虛擬表5##中提取出來,生成##虛擬表6##

7.order by語句:根據##虛擬表6##中的某個字段進行排序,生成##虛擬表7##

8.limit字句:在##虛擬表7##上操作,從指定位置取出數據,生成##最終表##

總結:form>where>group by>having>select>order by>limit

 

 

 

 

 


免責聲明!

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



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