SQL的执行顺序

实际上sql查询,不是从SELECT开始执行的。

看到大神发的帖子,总结了一下。

FROM JOIN --> WHERE --> GROUP BY --> HAVING ->SELECT(窗口函数在此发生)->ORDER BY -> LIMIT

理解顺序:

SQL的执行顺序
SQL的执行顺序
1.可以在GROUP BY 之后使用 WHERE 吗?
答:不行,先加where条件,然后再分组group by
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的执行顺序
2.可以对窗口函数返回的结果进行过滤么?
答:不行,窗口函数是select语句里,而select是在where和group by之后进行的。

3.可以基于group by 里的东西进行 order by吗?
答:可以,order by 基本上是在最后执行的,所以可以基于任何东西进行 order by;
SQL的执行顺序

插播面试题:

order by 默认是升序还是降序?

答:升序
4.limt 是在什么时候执行?
答:在最最最最最最最最最后!

相关文章: