图解sql语句执行流程

109 阅读2分钟

这是一条标准的查询语句:

图片

这是我们实际上SQL执行顺序:

图片

数据的关联过程

数据库中的两张表

图片

from&join&where

用于确定我们要查询的表的范围,涉及哪些表。另外,最新最全的 MySQL 面试题整理好了,微信搜索Java面试库小程序在线刷题。

选择一张表,然后用join连接

from table1 join table2 on table1.id=table2.id

选择多张表,用where做关联条件

from table1,table2 where table1.id=table2.id

我们会得到满足关联条件的两张表的数据,不加关联条件会出现笛卡尔积。

图片

group by

按照我们的分组条件,将数据进行分组,但是不会筛选数据。最新面试题整理好了,大家可以在Java面试库小程序在线刷题。

比如我们按照即id的奇偶分组

图片

having&where

having中可以是普通条件的筛选,也能是聚合函数。而where只能是普通函数,一般情况下,有having可以不写where,把where的筛选放在having里,SQL语句看上去更丝滑。

使用where再group by

先把不满足where条件的数据删除,再去分组

使用group by再having