您的位置:首页 > 数据库 > MySQL

Mysql select查询执行过程

2017-05-02 15:41 253 查看
SQL Select语句完整的执行顺序:  



      1、from 子句组装来自不同表的数据,包括join 、left join ; 全字段组装

       2、where  子句基于指定的条件对记录进行筛选

       3、group by  子句将数据划分为多个分组

       4、执行select 中的聚促函数,例如count(*),Max(),min()函数

      
[b]5、执行order by

[/b]

       6、[b]执行select,删除多余的字段,并且选定变为别名
[/b]

       7、执行having 语句

       8、执行limit




假定现在有2张表 ,用户表 和 用户成绩表 ,数据如下

用户表 user                                                                                                   用户成绩表








         





例子 1:  查出所有成绩都在60分以上的,平均分最高的学生名称 ,  并且未删除(is_deleted = 0)


SQL :





分析 : (默认 join 在 where之前 ,这个没法分析判断)


1、where中可以带有  select中未明确标出的字段,表示where查询的时候,join的是所有字段的笛卡尔积

2、如果在having中带有a.is_deleted=0会报错,但是在order by中不会报错 ,说明
order by >select  字段过滤>having


3、在 where中加上 min(b.score)> 60  会报错,说明先where 然后再 group by ,执行聚促函数


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  select sql mysql查询