笔试被问烂了:SQL的执行顺序

先给结论

from>join>where>group by>聚合函数>having>select>order by>limit

1、最先执行from table;

需要先确定从哪个表中取数据,所以最先执行from table。

2、join连接

用于把来自两个或多个表的行结合起来,简单补充一下连接的类型

  • 自然连接(natural join)
  • 内连接(inner join):内连接查询能将左表和右表中能关联起来的数据连接后返回,返回的结果就是两个表中所有相匹配的数据。
  • 外连接(outer join):外连接分为左外连接(LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行)、右外连接(RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行)、还有一个FULL JOIN(全连接),不过MYSQL不支持全连接
  • 交叉连接(cross join)即笛卡尔连接

3、where语句;

where语句是对条件加以限定

4、分组语句【group by…… having】;

group by是分组语句

having是和group by配合使用的,用来作条件限定

5、聚合函数;

常用的聚合函数有max,min, count,sum,聚合函数的执行在group by之后,having之前

举例:count函数查询分组后,每一组分别有多少条数据

select count(*) from user group by gender

值得注意的是:聚合函数的执行在group by之后,having之前

6、select语句;

对分组聚合完的表挑选出需要查询的数据

7、Distinct

distinct对数据进行去重

如果sql语句存在聚合函数,例如count、max等,会先执行聚合函数再去重

8、order by排序语句。

order by排序语句

select * from user order by id  升序排序
select * from user order by id desc 降序排序

9、limit

limit用于指定返回的数据条数

select * from user limit 2
从user表中查询前两条数据
该sql等同于
select * from user limit 0,2
表示从第0条开始取两条数据

limit常配合order by使用

select * from user order by id limit 3
根据id排序,选出id排序前三的数据

总结

from>join>where>group by>聚合函数>having>select>order by>limit

例子

select 
distinct user.name 
from user 
join vip on user.id=vip.id 
where user.id>10 
group by user.mobile 
having count(*)>2 
order by user.id
limit 3;

执行顺序

  1. from user
  2. join vip on user.id=vip.id ,join是表示要关联的表,on是连接的条件
  3. where user.id>10
  4. group by user.mobile 根据user.mobile分组
  5. 然后先执行count(*)在执行having,查询分组之后数量大于2的分组数据
  6. select 对分组聚合完的表挑选出需要查询的数据
  7. distinct查询出来的数据去重
  8. order by user.id 对去重后的数据排序
  9. limit 3对排序后的数据选出前面3条
#秋招##后端##数据库##sql##笔试#
全部评论
sql执行就是: 先有表(from、on、join),才能过滤(where),再才能分组(group、having),再才能选择去重(select distinct),再才能排序(order by),最后才能分页(limit)
116 回复 分享
发布于 2022-09-06 09:31 陕西
我出息了!最近在看sql必知必会,居然能看懂你在说什么了
9 回复 分享
发布于 2022-09-05 15:47 北京
阿巴阿巴
1 回复 分享
发布于 2022-09-11 10:36 上海
厉害,top1了
点赞 回复 分享
发布于 2022-09-05 17:48 广东
点赞 回复 分享
发布于 2022-09-05 18:41 上海
我前段时间才看到的,在复习一下,4.7万了
3 回复 分享
发布于 2022-09-06 00:11 湖北
rk1
2 回复 分享
发布于 2022-09-05 17:59 湖南
tql
2 回复 分享
发布于 2022-09-05 18:05 广东
这是哪个公司呀
1 回复 分享
发布于 2022-09-05 16:57 上海
有用!
1 回复 分享
发布于 2022-09-06 00:19 广东
阿巴阿巴
1 回复 分享
发布于 2022-09-11 10:36 上海
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-04 15:54 北京
点赞 回复 分享
发布于 2022-09-05 21:46 广东
tql!
点赞 回复 分享
发布于 2022-09-05 22:24 广东
超哥 TQL 
点赞 回复 分享
发布于 2022-09-06 11:06 广东
66
点赞 回复 分享
发布于 2022-09-06 12:26 四川
666
点赞 回复 分享
发布于 2022-09-06 12:28 四川
点赞 回复 分享
发布于 2022-09-06 15:22 广东
m
点赞 回复 分享
发布于 2022-09-06 17:41 陕西
不错,不错
点赞 回复 分享
发布于 2022-09-07 11:03 湖北

相关推荐

11-25 17:32
四川大学 会计
入职半年内,美团会为校招生提供一次拎包机会(可以自己申请报名也可以等安排,比如财务平台这次就为大家准备了名额,有外卖和充电宝)首先感谢财务平台为校招生安排的拎包活动嘿嘿嘿嘿。拎包,原来指的是销售同学入职前跟着师傅后面拎包试岗学习。后来延伸为前往美团前线岗位实地体验工作,或深度拜访客户、与客户面对面交流的过程。我也有幸参与了外卖的一线走访活动,亲身体验了外卖bd老师工作日常。当天一大早,我们就出发去拜访北京某大学的校园食堂和校内餐饮门店。每到一个商户,询问他们在外卖运营上遇到的各种问题。比如,有的商户反映菜单更新不够灵活、售罄菜品提醒不够醒目,有的则希望配送效率能再提升一点。我们一线团队就像是“移动客服中心”,一边记录问题,一边现场支招,帮助商户解决困扰。我们还有寻找新商户的任务,在校园里寻找那些新开业的小店铺或者食堂档口,由于美团品牌效应强且行业市占高,所有商家开店以后都主动找美团签约上线外卖,因此这个任务不算困难。我们只需要指导他们进行线上签约、上菜单、拍摄宣传图,整个流程跑下来,我对商户入驻、外卖运营的流程有了更深刻的认识。这次拎包体验让我深刻理解了“真正的朝堂在田野”。美团的庞大营收背后,正是一单单外卖、一辆辆单车的运营积累。财务BP不仅要懂财务,更要懂业务,以后更要把业务的痛难点作为工作方向,所以咱们职能岗也要更加关注业务需求,从中找到财务工作的新方向,不再只是埋头结账做账,而是做到真正的视野打开、格局打开。期待接下来的工作中,能够继续探索和成长,为美团的成功贡献自己的一份力量呀~#美团求职进展汇总##学历or实习经历,哪个更重要##美团员工福利##哪些瞬间让你真切感受到了工作的乐趣#
点赞 评论 收藏
分享
评论
204
1337
分享
牛客网
牛客企业服务