天天看點

SQL的執行順序SQL的執行順序

SQL的執行順序

實際上sql查詢,不是從SELECT開始執行的。

看到大神發的文章,總結了一下。

FROM JOIN --> WHERE --> GROUP BY --> HAVING ->SELECT(視窗函數在此發生)->ORDER BY -> LIMIT

了解順序:

SQL的執行順序SQL的執行順序
SQL的執行順序SQL的執行順序

1.可以在GROUP BY 之後使用 WHERE 嗎?

答:不行,先加where條件,然後再分組group by

SQL的執行順序SQL的執行順序
CREATE TABLE

text

(

id

int(10) NOT NULL,

name

varchar(255) NOT NULL,

number

int(255) NOT NULL,

PRIMARY KEY (

id

)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

SQL的執行順序SQL的執行順序
SQL的執行順序SQL的執行順序
SQL的執行順序SQL的執行順序

2.可以對視窗函數傳回的結果進行過濾麼?

答:不行,視窗函數是select語句裡,而select是在where和group by之後進行的。

3.可以基于group by 裡的東西進行 order by嗎?

答:可以,order by 基本上是在最後執行的,是以可以基于任何東西進行 order by;

SQL的執行順序SQL的執行順序

插播面試題:

order by 預設是升序還是降序?

答:升序

4.limt 是在什麼時候執行?

答:在最最最最最最最最最後!

繼續閱讀