MySQL查询原理简述

2023-11-17

一:MySQL查询
1:单表查询
根据where条件过滤表中的记录,每过滤一次形成一张中间表(中间表对用户是不可见的)。然后根据select的选择列返回最终的结果。
2:两张表连接查询
对两表求积(笛卡尔积:行相乘,列相加)并用on条件和连接类型进行过滤形成中间表,然后根据where条件过滤中间表的记录,并且根据select指定的列返回查询结果。
3:多表连接查询
先对第一个和第二个表按照两表连接做查询,然后用查询结果和第三表做连接查询,以此类推,直到所有的表都连接上为止,最终形成一个中间的结果表,然后根据where条件过滤中间表的记录,并根据select指定的列返回查询结果。

二:MySQL查询语法顺序
1:select
2:from
3:left … join
4:on
5:where
6:group by
7:having
8:order by
9:limit
三:MySQL执行顺序
示例:
select * from student s left join course c on s.id = c.student_id where s.id >10 group by s.id having count(1) > 3 order by s.id desc limit 0,20

1:form(将最近的两张表进行笛卡尔积) 形成中间表 … VT1
2:on (将VT1按照它的条件进行过滤) …VT2
3:left join (保留左表的记录) …VT3
4:where (过滤VT3中的记录,没过滤一次形成一张中间表) VT4 … VTn
5:group by (对VT4的记录进行分组) …VT5
6:having (对VT5中的记录进行过滤) …VT6
7:select (对VT6中的记录选取指定的列) …VT7
8:order by (对VT7的记录进行排序) …游标
9:limit(对排序后的值进行分页)

where 条件执行顺序(影响性能)
1:MySQL从左向右去执行where条件
2:Oracle从右向左去执行where条件
所以,写where条件的时候,优先级高的部分要去编写过滤力度最大的条件语句。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL查询原理简述 的相关文章

随机推荐

  • SURF算法原理

    1 先对图像进行高斯滤波 2 选用二阶标准高斯函数作为滤波器 通过特定核间的卷积计算二阶偏导数 计算出Hessian矩阵 3 计算判别式的值 根据判别式取值的正负 来判断该点是不是极值点 4 利用非极大值抑制初步确定的特征点 5 精确定位极
  • STM32单片机PT100温度采集控制系统

    实践制作DIY GC0030 PT100温度采集控制系统 一 功能说明 基于STM32单片机设计 PT100温度采集控制系统 功能介绍 STM32F103C系列最小系统班 PT100温度传感器 LCD1602显示器 12mA恒流源电路 继电
  • Failed to resolve import “element-plus/lib/theme-chalk/index.css“ from “src\...

    Failed to resolve import element plus lib theme chalk index css from src 学习vue3 ts中遇到的问题 vue3 ts搭建参考掘金文章 很详细 希望我能早日学会这套东
  • 最小二乘法求解圆方程圆形及半径

    ci最小二乘法定义 摘抄于百度百科 基本思路 摘抄于百度百科 简单的来说 最小二乘法为一类线性算法 将需要求解的系数当作未知数 f x 与x当作已知数 通过多组对应关系求得系数的方法 所以 最小二乘法仅适合系数为一次项方程式 例如 k与b作
  • 贝叶斯软件genle教程_贝叶斯网络可视化软件GeNIe使用说明

    实例简介 详细的介绍了贝叶斯网络可视化软件GeNIe使用说明 适合初学者 Table of contents 3 1 Read me first 2 Hello gentel 13 3 Introduction 31 3 1 Guide t
  • js替换所有的回车换行符

    替换所有的回车换行 function TransferString content var string content try string string replace r n g br string string replace n
  • Intelij IDEA 配置Tomcat时找不到 “Application Server”

    由于公司突然断电 再打开idea的时候 tomcat就消失了 然后在网上搜了一下 没搜到自己乱点了一下 如图 plugins gt gt application servers View 是报红色 所以我在搜索栏搜索了tomcat 如果箭头
  • Java的replaceAll()方法

    replaceAll 方法实际是采用正则表达式的规则去匹配的 在regex中 表示一个 在java中一个 也要用 表示 这样 前一个 代表regex中的 后一个 代表java中的 所以字符串转义一次 正则转义一次 那么一个斜扛要写4个 1
  • R语言实现常用的5种分析方法(主成分+因子+多维标度+判别+聚类

    来源 R友舍 R语言多元分析系列之一 主成分分析 主成分分析 principal components analysis PCA 是一种分析 简化数据集的技术 它把原始数据变换到一个新的坐标系统中 使得任何数据投影的第一大方差在第一个坐标
  • linux下的qt可以调用脚本吗,QT下实现对Linux Shell调用的几种方法

    使用QProcess QThread include int main QProcess execute ls return 0 QProcess poc new QProcess poc gt start ping 222 207 53
  • vue学习 十七 Vue路由和http请求

    路由的实现 首先需要cmd将路由模块装上 然后重启项目 多打几遍就熟悉了npm run dev 在下面的黑窗口中 我之前已经装过了路由模块 显示如下 npm install vue router save dev npm run dev 然
  • 什么?到现在你还不知道什么是 访问修饰限定符吗?

    导航小助手 前言 一 public 访问修饰限定符 二 private 访问修饰限定符 三 default 访问修饰限定符 3 1 包的概念 3 2 导入包中的类 3 3 自定义包 3 4 包访问权限 3 5 常见的包 四 protecte
  • 4.人脸检测mtcnn+mobilenet戴口罩分类

    from keras models import Model Sequential import tensorflow as tf import numpy as np import cv2 import os from functools
  • Centos Linux系统配置SSH免密登录

    首先修改host 将需要互相免密的机器相互加入到host文件中 vi etc hostname 添加主机名 hadoop2 vi etc sysconfig network 添加IP和hostname对应关系 192 168 8 107 h
  • 基于 EMQX 和 Neuron 的工业物联网 MQTT Sparkplug 解决方案

    引言 Sparkplug 是基于 MQTT 的一种专门为工业自动化和物联网应用而设计的通信协议 要搭建 Sparkplug 解决方案 需要两个核心组件 一个是 MQTT Broker 负责消息的分发和管理 另一个是边缘节点 负责将本地设备接
  • Python机器学习之k-means聚类算法

    1 引言 所谓聚类 就是按照某个特定的标准将一个数据集划分成不同的多个类或者簇 使得同一个簇内的数据对象的相似性尽可能大 同时不再一个簇内的数据对象的差异性也尽可能大 聚类算法属于无监督学习算法的一种 k 均值聚类的目的是 把 n个点 可以
  • 【Python自动化Excel】Python与pandas字符串操作

    Python之所以能够成为流行的数据分析语言 有一部分原因在于其简洁易用的字符串处理能力 Python的字符串对象封装了很多开箱即用的内置方法 处理单个字符串时十分方便 对于Excel csv等表格文件中整列的批量字符串操作 pandas库
  • 分享8个Python赚钱的接单平台!兼职月入5000+

    如果说当下什么编程语言最靠谱或者比较适合搞副业 答案肯定100 是 Python python是所有语法中最简单易上手的语言 不需要特别的的英语词汇量 逻辑思维也不需要很差就能上手 而且学会了之后就能编写代码爬取各种数据 制作各种图表 提升
  • 类与类之间的几种关系

    http www cnblogs com liuling archive 2013 05 03 classrelation html 一 继承关系 继承指的是一个类 称为子类 子接口 继承另外的一个类 称为父类 父接口 的功能 并可以增加它
  • MySQL查询原理简述

    一 MySQL查询 1 单表查询 根据where条件过滤表中的记录 每过滤一次形成一张中间表 中间表对用户是不可见的 然后根据select的选择列返回最终的结果 2 两张表连接查询 对两表求积 笛卡尔积 行相乘 列相加 并用on条件和连接类