MySQL的执行顺序

本篇文章仅仅只是自己的初识MySQL的理解,若有不对或者补充欢迎各位在评论区讨论
先来两个顺序

关键字顺序

**SELECT … FROM… WHERE… GROUP BY… HAVING…ORDER BY…LIMIT… **

SELECT执行顺序(基于MySQL8.0)

**FROM… WHERE… GROUP BY… HAVING…SELECT …DISTINCT…ORDER BY…LIMIT… **

第一步,先是from获取一大坨数据,然后把它放到临时表中(一张我们看不到,想象一下就可以,便于理解)
第二步,通过where将临时表中的数据进行初步筛选,选出我们想要的数据然后放到临时表中
第三步,通过having将数据进行二次筛选,进一步得到我们想要的数据
第四步,通过group by进行数据的再次细分,将数据有序化,然后放到临时表中
第五步,通过select再次进行筛选出我们想要的数据,放到临时表中
第六步,通过distinct进行数据的去重,去除数据一样的内容,比如部门相同,性别相同啥的
第七步,通过order by 再次进行排序,升序或者降序
第八步,通过limit进行数据的分页,将众多数据分页进行显示

通过上面的执行顺序我们可以了解到为什么 select取的别名我们不能在where 处进行使用了;
还可以得到为什么where 的执行效率比having高了;
若没有了where进行数据的初步筛选,我们就要先将一大坨数据进行分组然后再巴拉巴拉后面我就不叭叭了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值