昨天一个同学去面试某公司,面试官让他说一下sql的执行顺序,他尽然答错了,面试也就到此结束了!实属不应该。。。

借这个机会,在这里做一下简单的总结!
1. 书写顺序
按以下的顺序书写sql语句
SELECT 查询列表.
FROM 表 1
【连接类型】 JOIN 表2
ON 连接条件
WHERE 筛选条件
GROUP BY 分组列表
HAVING 分组后的筛选条件
ORDER BY 排序的字段
LIMIT 起始的条目索引,条目数;
即:
SELECT
→FROM
→ JOIN
→ ON
→ WHERE
→ GROUP BY
→ HAVING
→ ORDER BY
→ LIMIT
注意:
① 连接类型有:inner
、left outer
、right outer
、cross
② 起始条目索引默认从0开始;
③ 若 每页显示条目数:pageSize
,要显示的页数:page
则有:
SELECT * FROM 表 LIMIT (page-1)* pageSize,pageSize
2. 执行顺序
按右边标出的 ①-⑨ 的顺序执行
SELECT 查询列表 ⑦
FROM 表 1 ①
【连接类型】 JOIN 表 2 ③
ON 连接条件 ②
WHERE 筛选条件 ④
GROUP BY 分组列表 ⑤
HAVING 分组后的筛选条件 ⑥
ORDER BY 排序的字段 ⑧
LIMIT 起始的条目索引,条目数; ⑨
即:
FROM
→ ON
→ JOIN
→ WHERE
→ GROUP BY
→ HAVING
→ SELECT
→ ORDER BY
→ LIMIT
作者:扬帆向海
原文链接:https://zhangxy.blog.csdn.net/article/details/104857397
网友评论