5分钟记住MySQL中SQL执行顺序

259 阅读2分钟

一、基础讲解

整理这篇文章的初衷是刷面试视频看的有个面试官提及,SQL的执行顺序?

SQL都会写但缺乏深入思考,现整理分享,希望有所进步

常见SQL顺序讲解

查询中用到的关键词主要包含六个,并且他们的顺序依次为
select--from--where--group by--having--order by

select 和 from 是必须的,其他关键词是可选的
常见六个关键词的执行顺序如下:

from:需要从哪个数据表检索数据

where:过滤表中数据的条件

group by:如何将上面过滤出的数据分组

having:对上面已经分组的数据进行过滤的条件

select:查看结果集中的哪个列,或列的计算结果

order by :按照什么样的顺序来查看返回的数据

补充一下having的使用案例

having主要是在原有的基础上再起到一个过滤的作用
select sum(score) from student  where sex = 'man' group by name having sum(score) > 80
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数

使用having 条件显示特定的组,也可以使用多个分组标准进行分组

相对完善的逻辑整理: select语句的逻辑执行顺序

下面是SELECT语句的逻辑执行顺序:
from
join
on
where
group by
avg,sum,count等各种函数
having
select
distinct
order by(asc(升序),desc(降序))
limit

二、拓展补充

distinct关键字讲解

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

关键词 DISTINCT 用于返回唯一不同的值。
SELECT DISTINCT 列名称 FROM 表名称
如下是实测案例,可以筛选出重复的数据

image.png


非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!