首页-傲世皇朝注册平台-登录测速一站式服务平台
首页-傲世皇朝注册平台-登录测速一站式服务平台
新闻详情
 
当前位置
首页@太阳2注册@首页
作者:an888    发布于:2026-06-29 03:44    文字:【】【】【

  现在我把这三张表连起来查,查询条件:查询课程编号为2或教师证编号为3点老师信息;

  SQL语句很简单,我们不关心这个,我们关心的是在它前面加explain:

  id此时此刻都是1,它们都对应我们的表 te 是我们的教师证表 t 就是教室表 c 是课程表

  由此可见,我们编写的SQL语句它底层是先执行教师证表的,然后执行教室表,最后再执行课程表;

  通过试验我们发现,确实谁少就先执行谁,但是我我们却发现,表的执行顺序是因数量的个数改变而改变,那它的原因是什么呢?为什么表的执行顺序会跟随个数而改变呢?

  我们现在假设a b 两张表,a里面有三条数据,b里面有六条数据,最后他俩相乘 = 18;

  我们假设现在有 a b c三张表,第一张表 a 是三条数据 第二张表是3条数据第三表的数据是4,那它们的笛卡尔积 2*3 = 6 6再*4 = 24;

  这个时候我们换一下位置 a 是四条数据 b 是三条数据 c 是两条数据,我们再来算一下它们的笛卡尔积:3*4 = 12 *2 = 24;

  我们发现两者结果都没有变,但是中间结果变了,第一次计算笛卡尔积时 第一次计算2*3 =6,第二次计算笛卡尔积时3*4 = 12,因为6比12小索所以它就先执行;

  为什么在图上,c先执行的原因是 c * t (3*4 = 12)te 是6,所以比较大,就向后放;

  id值相同,就从上往下依次执行,如果不相同,那就从下往上执行,因为id值越大,它就越往下排列;

  Simple:简单查询(一个SQL语句里面不包含子查询,union)都是简单查询

相关推荐
  • 恒彩注册-挂机
  • 首页@太阳2注册@首页
  • 太阳城3挂机-地址
  • 首页、摩登3主管首页
  • 首页(太阳3注册)首页
  • {傲世皇朝平台}最新趋势报告
  • 聚资讯|本周演出(34-310)
  • 今天海盐这场比赛很新潮→
  • 2023“iF设计奖”上令人眼前一亮的包装设计
  • {安信平台}优化全攻略:流量翻倍秘籍
  • 脚注信息