天天看点

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 是在什么时候执行?

答:在最最最最最最最最最后!

继续阅读