Mysql的执行顺序

1:Mysql的执行顺序

面试比较常见的问题

  • FROM: 将table1和table2数据进行关联的时候就产生了笛卡尔积效应,所谓的笛卡尔积就是两个表的数据在没有进行关联的时候就会产生一张大表也就是表1的行数 * 表二的行数的乘积。产生TABLE表1

例如: dept表为4条数据
请添加图片描述
emp表为14条数据
请添加图片描述
那么如果不进行关联查询会有什么样的变化呢?

请添加图片描述
答案是56条,为什么呢,因为没有去做关联查询的话,table1和table2就会将各自的结果相乘。14*4 = 56了。所以在做链接条件的时候一定要进行关联查询

  • JOIN:然后是确定表

  • ON:然后确定链接条件后,产生table表2

  • WHERE: 对关联之后的表(table2)产生的结果进行行级过滤产生table表三

  • GROUP BY:对table3进行分组产生table4

  • HAVING: 对分组的记录进行聚合过滤,产生table5

  • SELECT: 对table表5的列进行筛选,产生table6

  • DISTINCT: 对table6的数据进行去重,产生table7

  • ORDER BY:对table7的数据进行排序产生table8

  • LIMIT:对table8的数据进行分页展示产生table9

顺序为: FROM–>JOIN --> ON -->WHERE -->GROUP BY -->HAVING–>SELECT–>DISTINCT–>ORDER BY --> LIMIT

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值