MySQL之SQL执行顺序

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: MySQL之SQL执行顺序

如果要深入了解数据库,首先就要从数据库的SQL执行顺序来开始学习,只有知道了基本的执行过程,才能更好的去思考优化的问题。

在说这个SQL的执行顺序之前,还有几个知识点需要提一下。

笛卡尔积:两个集合相乘,得到的结果包含了两个集合中元素之和。

永久表:普通意义上自行创建的表,用于长期保存数据等操作。

临时表:分为两种,其一是为了保存数据,也可以长期存在于数据库中;其二是因为SQL执行中临时创建的,在SQL执行结束后,就会被删除。

虚表:虚表类似于一个结果集,也可以说成是一个视图,只是个执行结果。

下面就来看一下MySQL的SQL执行顺序吧。


FROM


首先解析From两边的表,进行笛卡尔积的计算,产生一个虚表table1。


ON


接着通过ON条件来进行筛选,形成第二个虚表table2,最新的数据也在这里面。


JOIN


根据内连接和外连接的不同,这里也会有所不同,内连接会增加外部行,左连接会将ON过滤条件的左表添加进去,右连接会将ON过滤条件的右表添加进去,生成虚表table3。


WHERE


接着就是执行where过滤,通过where条件的过滤形成虚表table4。


GROUP BY


如果SQL语句中存在group by,则会对虚表table4进行分组,产生出虚表table5,紧接着会执行聚合函数。


HAVING


Group by执行完毕,会继续执行having过滤,从而生成虚表table6


SELECT


执行完上述语句后,就会执行select语句了,将虚表table6中的列,针对select进行筛选,随后生成出虚表table7


DISTINCT


select语句执行完毕后,就会去执行去重操作了,这里同样会生成新的虚表table8


ORDER BY


执行完上述操作后,就该执行排序了,在排序之后还会执行limit操作。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL系列笔记】常用SQL
常用SQL分为三种类型,分别为DDL,DML和DQL;这三种类型的SQL语句分别用于管理数据库结构、操作数据、以及查询数据,是数据库操作中最常用的语句类型。 在后面学习的多表联查中,SQL是分析业务后业务后能否实现的基础,以及后面如何书写动态SQL,以及完成级联查询的关键。
17 6
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL-4】简述SQLの通用语法及4种基本语句介绍(DDL/DML/DQL/DCL)
【MySQL-4】简述SQLの通用语法及4种基本语句介绍(DDL/DML/DQL/DCL)
|
1天前
|
SQL 存储 关系型数据库
【MySQL系列笔记】SQL优化
SQL优化是通过调整数据库查询、索引、表结构和配置参数等方式,提高SQL查询性能和效率的过程。它旨在减少查询执行时间、减少系统资源消耗,从而提升数据库系统整体性能。优化方法包括索引优化、查询重写、表分区、适当选择和调整数据库引擎等。
16 3
|
3天前
|
SQL 关系型数据库 MySQL
MySQL SQL error: #1271 - Illegal mix of collations for operation ‘UNION‘
MySQL SQL error: #1271 - Illegal mix of collations for operation ‘UNION‘
|
3天前
|
SQL 关系型数据库 MySQL
【MySQL】:分组查询、排序查询、分页查询、以及执行顺序
【MySQL】:分组查询、排序查询、分页查询、以及执行顺序
13 0
|
3天前
|
SQL 关系型数据库 MySQL
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
11 0
|
4天前
|
SQL 存储 缓存
详解MySQL中一条SQL执行过程
详解MySQL中一条SQL执行过程
8 0
|
6天前
|
SQL 关系型数据库 MySQL
【MySQL】SQL优化
【MySQL】SQL优化
|
21天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
61 10