SQL的执行顺序

mac2024-05-29  46

SQL的执行顺序

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

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

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

理解顺序:

1.可以在GROUP BY 之后使用 WHERE 吗? 答:不行,先加where条件,然后再分组group by

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;

2.可以对窗口函数返回的结果进行过滤么? 答:不行,窗口函数是select语句里,而select是在where和group by之后进行的。

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

插播面试题:

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

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

最新回复(0)