在执行SQL语句的时候,执行顺序和我们的语法顺序是一样的吗?有什么不同呢?

SQL 语句的执行顺序跟其语句的语法顺序并不一致
一般而言

SQL 语句的语法顺序是:

SELECT[DISTINCT]

FROM

WHERE

GROUP BY

HAVING

UNION

ORDER BY

其执行顺序为:

FROM

WHERE

GROUP BY

HAVING

SELECT

DISTINCT

UNION

ORDER BY

需要注意的是:

1、 FROM 才是 SQL 语句执行的第一步。数据库在执行 SQL 语句的第一步是将数据从硬盘加载到数据缓冲区中,以便对这些数据进行操作。

2、SELECT 是在大部分语句执行了之后才执行的,严格的说是在 FROM 和 GROUP BY 之后执行的。这就是你不能在 WHERE 中使用在 SELECT 中设定别名的字段作为判断条件的原因。
3、并非所有SQL都按照上述的顺序进行。

那么我们来看一道面试真题吧:

SQL语句执行的顺序是

A.
SELECT<br>2.JOIN ON<br>3.FROM<br>4.WHERE<br>5.GROUP BY<br>6.HAVING<br>7.ORDER BY
B.
SELECT<br>2.FROM<br>3.JOIN ON<br>4.WHERE<br>5.GROUP BY<br>6.HAVING<br>7.ORDER BY
C.
FROM<br>2.JOIN ON<br>3.WHERE<br>4.GROUP BY<br>5.HAVING<br>6.SELECT<br>7.ORDER BY
D.
JOIN ON<br>2.WHERE<br>3.GROUP BY<br>4.HAVING<br>5.SELECT<br>6.FROM<br>7.ORDER BY

解析:
这题说的是执行顺序,而不是语句顺序,一定要注意区分~~,from是最早的,select在having后面,order 不要在最后 选C

全部评论

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务