当前位置: 首页 > news >正文

我们来学mysql -- 连接(原理版)

我们来学mysql -- 连接

  • 题记
  • 两张表
  • 驱动表

题记

  • 回到初学者的视角,navicat或命令窗口,呈现一行行数据,类比为excel工作薄更是深入人心
  • 通过join将多表的记录关联起来,这似乎也没啥问题
  • 只是好像是那么回事,又…似乎有想说却表述不清的困惑
  • 其实,困惑的原因无非就是源于认识的不足,青少年的成长困惑如此,世间都是如此
  • 翻看《建立索引》《使用索引》,为各位看官,减少或者增加困惑,人生不过如此

两张表

t1f1t1f2t1f3t1f4
7bcd
········
t2f1t2f2t2f3t2f4
3bcd
7hacc
········

驱动表

  • 多表关联查询,总得有个先开始查的表,就叫它驱动表

  • select * from t1 , t2 where t1.t1f1 > 6 and t1.t1f1 = t2.t2f1 and t2.t2f3 < 'c'

  • 从驱动表中查出满足条件的记录,可以全表扫描,或者基于条件列的值建立索引,生成扫描区间

    • 基于建立的b+tree结构索引,快速定位到满足条件的第一条记录,避免全扫描
    • 查驱动表的sql select * from t1 where t1.t1f1 > 6
    • 定位到第一条数据
      在这里插入图片描述
  • 查到第一条记录后,从t1.t1f1 = t2.t2f1知道通过t1.t1f1=7作为关联表t2的条件值,带入到被驱动表

    • select * from t2 where t2.t2f1 = 7 and t2.t2f3 < 'c'
    • 被驱动表可以全表扫描,或者基于条件列的值建立索引
    • t2表查到记录
      在这里插入图片描述
    • t2查出的数据,结合t1查询的记录,返回给客户端
      在这里插入图片描述
  • 并不是将驱动表满足条件记录全部查出,再去关联被驱动表 ,而是查一条,就到被驱动表中查一次

http://www.lryc.cn/news/477120.html

相关文章:

  • PyQt5的安装与简介
  • 100种算法【Python版】第43篇——优化算法之模拟退火算法
  • 初识动态规划(由浅入深)
  • 关于大模型微调与训练的问题,大模型训练的难点在哪里?
  • 如何对数据库的表字段加密解密处理?
  • 六、Go语言快速入门之数组和切片
  • Java:数组的定义和使用(万字解析)
  • 密码学简要介绍
  • 2024.11月最新智能问答AI创作系统源码,GPT4.0多模态模型+AI换脸+AI智能体GPTs应用+AI绘画(Midjourney)+详细搭建部署教程
  • 江协科技STM32学习- P34 I2C通信外设
  • Python 继承、多态、封装、抽象
  • 在.net下后台设置前台UEditor编辑器不可编辑
  • Flutter CustomScrollView 效果-顶栏透明与标签栏吸顶
  • 【新手入门软件测试--该如何分辨前后端问题及如何定位日志--前后端问题分辨与日志定位查询问题】
  • 【Java Web】DAO模式及单例模式(含代码示例)
  • 深入探讨SEO分析技巧助力网站流量提升
  • Chrome 130 版本开发者工具(DevTools)更新内容
  • 深度学习基础知识-残差网络ResNet
  • Linux云计算个人学习总结(二)
  • Java入门(7)--网络编程
  • [思考记录]思维局限,以为懂了
  • 力扣题目解析--最长公共前缀
  • 不画饼——研究生学习和赚钱的平衡点
  • 华为实时视频使用FLV播放RTSP流
  • JAVA设计模式之【建造者模式】
  • 【jvm】为什么Xms和Xmx的值通常设置为相同的?
  • windows查看net网络监听端口命令和工具(ipconfig、netstat、tasklist、TCPView)
  • JAVA-数据结构- 二叉搜索树
  • 深入研究 RAG 流程中的关键组件
  • 新手如何学习python并快速成为高手