我们来学mysql -- 连接(原理版)
我们来学mysql -- 连接
- 题记
- 两张表
- 驱动表
题记
- 回到初学者的视角,navicat或命令窗口,呈现一行行数据,类比为excel工作薄更是深入人心
- 通过join将多表的记录关联起来,这似乎也没啥问题
- 只是好像是那么回事,又…似乎有想说却表述不清的困惑
- 其实,困惑的原因无非就是源于认识的不足,青少年的成长困惑如此,世间都是如此
- 翻看《建立索引》《使用索引》,为各位看官,减少或者增加困惑,人生不过如此
两张表
| t1f1 | t1f2 | t1f3 | t1f4 |
|---|---|---|---|
| 7 | b | c | d |
| ·· | ·· | ·· | ·· |
| t2f1 | t2f2 | t2f3 | t2f4 |
|---|---|---|---|
| 3 | b | c | d |
| 7 | h | a | cc |
| ·· | ·· | ·· | ·· |
驱动表
-
多表关联查询,总得有个先开始查的表,就叫它驱动表
-
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查询的记录,返回给客户端

-
并不是将驱动表满足条件记录全部查出,再去关联被驱动表 ,而是查一条,就到被驱动表中查一次
相关文章:
我们来学mysql -- 连接(原理版)
我们来学mysql -- 连接 题记两张表驱动表 题记 回到初学者的视角,navicat或命令窗口,呈现一行行数据,类比为excel工作薄更是深入人心通过join将多表的记录关联起来,这似乎也没啥问题只是好像是那么回事,又…似乎有想说…...
PyQt5的安装与简介
目录 一、介绍 二、PyQt5的安装 1、安装PyQt5 2、安装Qt的工具包 三、配置Qt工具 1、配置Designer (1)、打开pycharm,找到设置选项 (2)、找到工具-->外部工具 (3)、点击号,创建外部工…...
100种算法【Python版】第43篇——优化算法之模拟退火算法
本文目录 1 算法说明2 算法示例:Rosenbrock函数极值3 算法应用1:复杂函数极值4 算法应用2:TSP问题1 算法说明 模拟退火(Simulated Annealing, SA)算法最早由斯图尔特西尔伯特和约瑟夫斯图尔特于1983年提出,灵感来源于金属退火过程。金属在加热后会变得更加柔软,冷却时逐…...
初识动态规划(由浅入深)
🤓 动态规划入门与进阶指南 📘 动态规划(Dynamic Programming, DP)是一种非常经典的📐算法方法,特别适合用来解决那些有大量重复计算的问题🌀。它可以将复杂的问题拆分为小问题🧩&a…...
关于大模型微调与训练的问题,大模型训练的难点在哪里?
前言 “ 大模型训练的难点不在于大模型本身,而在于训练数据 ” 这两天有一个小兄弟问我关于大模型训练的问题,然后他想自己训练一个小模型,但又不知道该怎么操作;所以,今天就再来讨论一下大模型的训练问题࿰…...
如何对数据库的表字段加密解密处理?
对于表格数据的加密处理,通常涉及到对数据库中存储的数据进行加密,以保护敏感信息。 Java示例(使用AES算法加密数据库表数据) 首先,你需要一个数据库连接,这里假设你使用的是JDBC连接MySQL数据库。以下是…...
六、Go语言快速入门之数组和切片
文章目录 数组和切片数组:one: 数组初始化:two: 数组的遍历:three: 多维数组:four: 将数组传递给函数 切片(Slice):one: 切片的初始化:star: new和make区别 :two: 切片的使用:three: 将切片传递给函数:four: 多维切片:four: Bytes包:four: 切片和垃圾回收 📅 2024年…...
Java:数组的定义和使用(万字解析)
目录 1. 数组的概念 2. 数组的基础知识 2.1 数组的创建 \1. 基础创建格式: \2. 类似C语言的创建格式: 【错误的创建(初始化)格式】 2.2 数组的数据类型 2.3 数组的初始化 —— 两种方式 \1.动态初始化:(完全默认初始化) \2. 静态初…...
密码学简要介绍
密码学是研究编制密码和破译密码的技术科学,它研究密码变化的客观规律,主要包括编码学和破译学两大部分。 一、定义与起源 定义:密码学是研究如何隐密地传递信息的学科,在现代特别指对信息以及其传输的数学性研究,常被…...
2024.11月最新智能问答AI创作系统源码,GPT4.0多模态模型+AI换脸+AI智能体GPTs应用+AI绘画(Midjourney)+详细搭建部署教程
一、前言 SparkAi创作系统是一款基于ChatGPT和Midjourney开发的智能问答和绘画系统,提供一站式 AI B/C 端解决方案,AI大模型提问、AI绘画、专业版AI视频生成、文档分析、多模态识图理解、TTS & 语音识别对话、AI换脸、支持AI智能体应用(…...
江协科技STM32学习- P34 I2C通信外设
🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝…...
Python 继承、多态、封装、抽象
面向对象编程(OOP)是 Python 中的一种重要编程范式,它通过类和对象来组织代码。OOP 的四个核心概念是继承(Inheritance)、多态(Polymorphism)、封装(Encapsulation)和数据…...
在.net下后台设置前台UEditor编辑器不可编辑
今天手下有个问:当用户填写提交后,再次显示提交页面时,该页面的UEditor编辑器需要设置成不可编辑,怎么实现? 可以用后台调用前台js的方式实现: 例如: 前台页面: <div style&qu…...
Flutter CustomScrollView 效果-顶栏透明与标签栏吸顶
CustomScrollView 效果 1. 关键组件 CustomScrollView, SliverOverlapAbsorber, SliverPersistentHeader 2. 关键内容 TLDR SliverOverlapAbsorber 包住 pinned为 true 的组件 可以被CustomScrollView 忽略高度。 以下的全部内容的都为了阐述上面这句话。初阶 Flutter 开发知…...
【新手入门软件测试--该如何分辨前后端问题及如何定位日志--前后端问题分辨与日志定位查询问题】
前后端问题分辨与日志定位查询 一、前端问题1. 页面无法加载2. 样式错乱3. API请求失败4. 数据格式错误5. 跨域请求问题 二、后端问题6. 表单验证失败7. 数据库连接失败8. 请求超时9. 权限问题10. JavaScript运行错误 三、日志查询的方法1. 查看日志文件2. 过滤关键字3. 实时查…...
【Java Web】DAO模式及单例模式(含代码示例)
文章目录 JDBC封装DAO模式实体类DAO接口DAO实现类数据源配置基础DAO类业务逻辑层 单例模式饿汉式懒汉式 JDBC封装 JDBC(Java Database Connectivity)封装是一种将 JDBC 的基本操作和常见的数据库访问逻辑封装成易于使用的工具类或框架的方法。这样做的目…...
深入探讨SEO分析技巧助力网站流量提升
内容概要 在当前的数字化时代,SEO分析的重要性不言而喻。它是提升网站流量的关键工具,帮助站长有效地优化网站内容和结构。通过系统的SEO分析,站长可以掌握用户搜索行为和需求,从而制定出更具针对性的内容策略。例如,…...
Chrome 130 版本开发者工具(DevTools)更新内容
Chrome 130 版本开发者工具(DevTools)更新内容 一、网络(Network)面板更新 1. 重新定义网络过滤器 网络面板获新增了一些过滤条件,这些过滤条件是根据反馈重新设计的,特定于类型的过滤条件保持不变&…...
深度学习基础知识-残差网络ResNet
目录 一、ResNet 的核心思想:残差学习(Residual Learning) 二、ResNet 的基本原理 三、ResNet 网络结构 1. 残差块(Residual Block) ResNet 的跳跃连接类型 2. 网络结构图示 四、ResNet 的特点和优势 五、ResNe…...
Linux云计算个人学习总结(二)
高级文件系统 一、RSYNC概述 1、作用:快速的文件复制工具(支持本地和远程),以及删除、查看等基本功能。 2、特点:支持实时(inotify、sersync)的增量备份工具3、模式:检查模式&#…...
Gogs符号链接导致远程命令执行漏洞深度解析
1. 这个漏洞不是“能执行命令”那么简单,而是Gogs在文件系统边界上彻底失守CVE-2024-56731这个编号刚出现在NVD数据库时,我第一反应是点开看PoC——结果发现它连exploit.py都不需要写,一条curl加一个精心构造的.git/config就能让目标服务器执…...
为什么92.7%的企业漏检DeepSeek生成的隐性偏见内容?3类高危prompt绕过案例首次公开
更多请点击: https://intelliparadigm.com 第一章:DeepSeek输出内容审核的行业现状与挑战 当前,以DeepSeek-R1为代表的开源大语言模型在代码生成、数学推理和多轮对话等任务中展现出卓越性能,但其开放权重与高自由度输出特性&…...
5个步骤打造个性化AI界面:Chatbox主题定制完全指南
5个步骤打造个性化AI界面:Chatbox主题定制完全指南 【免费下载链接】chatbox Powerful AI Client 项目地址: https://gitcode.com/GitHub_Trending/ch/chatbox 你是否每天花数小时与AI助手对话,却感觉界面千篇一律?是否在深夜工作时被…...
应对野外挑战:鼎讯GO-50PRO在交通光缆施工中的核心优势
在铁路、高速公路等交通基础设施的智能化建设中,稳定高效的光纤网络是指挥调度、安全监控等核心系统运行的生命线。鼎讯GO-50PRO光时域反射仪,作为一款集成了多种测试功能的专业设备,正成为保障这些关键通信链路畅通无阻的可靠选择。无惧恶劣…...
物理信息机器学习:从数据中挖掘物理规律,提升设备剩余寿命预测精度
1. 项目概述:当物理定律遇见数据智能在航空发动机健康管理这个领域,干了这么多年,我最大的感触是:数据很重要,但光有数据远远不够。你手头可能有一堆传感器传回来的温度、压力、振动曲线,用LSTM、CNN这些深…...
从‘拍脑袋’到‘有章法’:用Python实战Embedded与Wrapper方法,为你的模型精准选特征
从‘拍脑袋’到‘有章法’:Python实战Embedded与Wrapper方法的高阶特征选择指南在金融风控和医疗诊断这类对模型精度要求严苛的领域,数据科学家们常常面临这样的困境:当特征数量膨胀到数百甚至上千维时,盲目依赖过滤法选特征就像在…...
毕业设计 深度学习yolo11水果识别系统(源码+论文)
文章目录0 前言1 项目运行效果2 课题背景2.1. 课题背景2.1.1 农业现代化与智能化需求2.1.2 计算机视觉在农业中的应用发展2.1.3 目标检测技术演进2.1.3.1 传统图像处理阶段(2000-2012)2.1.3.2 机器学习阶段(2012-2016)2.1.3.3 深度…...
百度网盘直链解析:5分钟实现全速下载的终极指南
百度网盘直链解析:5分钟实现全速下载的终极指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘的非会员限速而烦恼吗?每次下载大文件都…...
电力负荷预测挑战:Informer2020如何实现长序列时间序列预测的完整解决方案
电力负荷预测挑战:Informer2020如何实现长序列时间序列预测的完整解决方案 【免费下载链接】Informer2020 The GitHub repository for the paper "Informer" accepted by AAAI 2021. 项目地址: https://gitcode.com/gh_mirrors/in/Informer2020 在…...
Adobe Illustrator自动化脚本终极指南:告别重复劳动的设计神器
Adobe Illustrator自动化脚本终极指南:告别重复劳动的设计神器 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 你是否曾经在Adobe Illustrator中为了调整几十个画板而重…...
