MySQL语句的执行顺序是怎样的?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL语句的执行顺序是怎样的?

MySQL语句的执行顺序是怎样的?


文章目录

结论

from>join>where>group by>聚合函数>having>select >Distinct >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配合使用的,用来作条件限定

如果中间有聚合函数,那么先执行group by,再执行聚合函数,再执行having

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用于指定返回的数据条数

例如下面两种常见用法:

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

limit常配合order by使用

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

总结

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

代码案例

sql代码

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 查询来自user表中的数据
  2. join vip on user.id=vip.id ,join是表示要关联的表,on是连接的条件
  3. where user.id>10 查询数据的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条


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9月前
|
SQL 关系型数据库 MySQL
MySQL的语句执行顺序
MySQL的语句执行顺序
61 1
|
9月前
|
SQL 关系型数据库 MySQL
MySQL - 一文解析 SQL 的执行顺序
MySQL - 一文解析 SQL 的执行顺序
357 0
|
9月前
|
SQL 关系型数据库 MySQL
MySQL之SQL执行顺序
MySQL之SQL执行顺序
90 0
|
SQL 算法 关系型数据库
Mysql关键字执行顺序-深入解析
Mysql关键字执行顺序-深入解析
1463 0
Mysql关键字执行顺序-深入解析
|
9月前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
|
8月前
|
SQL 关系型数据库 MySQL
3.Mysql 基础语法和执行顺序
3.Mysql 基础语法和执行顺序
48 0
|
9月前
|
SQL 关系型数据库 MySQL
【MySQL】:分组查询、排序查询、分页查询、以及执行顺序
【MySQL】:分组查询、排序查询、分页查询、以及执行顺序
287 0
|
9月前
|
关系型数据库 MySQL
Mysql查询语句的执行顺序
Mysql查询语句的执行顺序
45 0
|
SQL 存储 缓存
Mysql数据查询优化——sql执行顺序&执行计划
Mysql数据查询优化——sql执行顺序&执行计划
663 0
Mysql数据查询优化——sql执行顺序&执行计划
|
9月前
|
SQL 关系型数据库 MySQL
MySQL知识汇总:讲一讲MySQL中Select语句的执行顺序
MySQL知识汇总:讲一讲MySQL中Select语句的执行顺序

推荐镜像

更多