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

MySQL执行顺序

MySQL执行顺序

MySQL语句的执行顺序也是在面试过程中经常问到的问题,并且熟悉执行顺序也有助于SQL语句的编写。

SELECT
FROM 
JOIN
ON
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT

执行顺序如下:

FROM
ON 
JOIN
WHERE
GROUP BY # (开始使用别名)
SUM # SUM等SQL中的函数
HAVING
SELECT
[DISTINCT] # 去重
ORDER BY
LIMIT

在这里插入图片描述

执行顺序解释

  1. FROM:首先要判断从哪个表里面进行查找,这时候可以判断出别名,以方便后面的语句使用
  2. ON:其实JOIN ON可以看做一个整体,代表要链接的表(JOIN)以及表条件(ON),但是在连接表之前,需要先知道连接条件,所以ON在前面
  3. JOIN:如2所示,JOIN要放在ON后面
  4. WHERE:通过JOIN ON会生成一个中间表,这时候执行WHERE筛选出符合条件的记录,(数据减少后当然操作更快),因此WHERE过滤要尽量放在前面(但是也不能在没有中间表的时候就执行,所以必须是在JOIN...ON...后面)
  5. GROUP BY是分组,通常分组都需要使用聚合函数才能执行
  6. 聚合函数:聚合函数可以看做与HAVING是一个整体,HAVING中放的是聚合函数的过滤条件(也可以放普通的条件,但是考虑到执行顺序以及执行效率,尽量将聚合函数的条件放在这里),由于HAVING中放着聚合的条件,所以要先执行聚合函数,得到结果,才能进行条件过滤,因此聚合函数在HAVING之前
  7. SELECT:在这些都执行结束之后,基本就能得到一个包含所有表所有符合条件的记录,这时候再用SELECT得到要查询的字段,进行输出
  8. 这时候可以使用DISTINCT进行过滤
  9. ORDER BY最后执行排序与分页,逻辑上来说是先排序后分页(比如我要用工资进行排序的话,我要的是所有工资从低到高,每10条数据显示,而不是10条显示,然后在对这10条进行排序)
  10. 分页,如9所示

举些例子

  1. 单表查询
SELECT manager_id,count(*) FROM employees WHERE employee_id>3 GROUP BY manager_id;

从employees表里面选择ID>3的各个manager_id的人数

执行顺序

FROM employees WHERE employee_id>3 GROUP BY manager_id COUNT(*) ;
  1. 双表查询
SELECT e.employee_id,e.last_name,d.location_id  FROM employees e JOIN departments d ON e.department_id=d.department_id ORDER BY e.employee_id;

执行顺序

FROM employees e,departments d # 从哪儿表格里面查(双表
ON e.department_id=d.department_id  # 连接条件用上,过滤出符合条件的
JOIN departments d # 关联双表
SELECT e.employee_id,e.last_name,d.location_id # 查询字段
ORDER BY e.employee_id; # 排序方式

相关文章:

MySQL执行顺序

MySQL执行顺序 MySQL语句的执行顺序也是在面试过程中经常问到的问题,并且熟悉执行顺序也有助于SQL语句的编写。 SELECT FROM JOIN ON WHERE GROUP BY HAVING ORDER BY LIMIT执行顺序如下: FROM ON JOIN WHERE GROUP BY # (开始使用别名) SUM # SUM等…...

引领真无线耳机未来趋势,NANK南卡OE骨传导真无线耳机惊艳亮相

传统的蓝牙耳机存在很多问题,例如续航时间短、长期佩戴耳朵会不舒服,甚至影响听力等等。为了解决这些问题,在骨传导领域深耕十多年的南卡品牌推出了这款真无线骨传导耳机——NANK南卡 OE。 NANK南卡OE即将正式上线,这一消息一经宣…...

5款写作神器,帮助你写出5w+爆款文案,好用到哭

我不允许还有文案小白、新手博主不知道这5款写作利器! 每次一写文案就头秃的新媒体工作者,赶紧看过来吧!这5款好用到爆的写作神器,喝一杯咖啡的时间就能完成写作。 我和同事都是用它们,出了很多的爆款,现…...

相交链表问题

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后&…...

[ubuntu] ax200网卡虚接,导致系统根目录占满而无法进入系统的奇葩问题

20230508,我像往常一样,打开电脑发现根目录满了,报警了,所以按照网上的教程,清理了一下根目录的文件,没想到背后是网卡问题… 文章目录 1.进入终端模式2.查看占用情况3.清理系统log文件3.1 清理/var/log/syslog3.2 清…...

本地字体库的引入方法

本地字体库是指在计算机系统中存储的一组字体文件,通常包含多种字体格式,如TTF、OTF、WOFF等。引入本地字体库可以让用户在使用计算机时可以选择不同的字体,从而提高用户的使用体验。 本地字体库的引入方式有多种,其中比较常用的是…...

7种优秀的导航菜单设计总结

导航是应用程序界面中最常见的模块之一,在链接应用程序中起着每个页面的作用。 不同的设计需求和业务目标决定了导航的设计因品而异,移动设备的尺寸远小于计算机。因此,在设计移动终端导航时,应考虑更全面,以确保简单…...

Problem E. 矩阵游戏 (2023年ccpc河南省赛)

原题链接: https://codeforces.com/gym/104354 题意: 有一个n*m的矩阵,只有三种字符:0,1和?。从[1,1]走到[n,m],每次只能向下走或者向下走。当走到1的时候得一分,走到0的时候不得分,走到?的时候可以将他…...

数字孪生模型构建理论及应用

源自:计算机集成制造系统 作者:陶飞 张贺 戚庆林 徐 俊 孙铮 胡天亮 刘晓军 刘庭煜 关俊涛 陈畅宇 孟凡伟 张辰源 李志远 魏永利 朱铭浩 肖斌 摘 要 数字孪生作为实现数字化转型和促进智能化升级的重要使能途径,一直备受各…...

Vue面试题:30道含答案和代码示例的练习题

Vue中的双向数据绑定是怎么实现的? 双向数据绑定通过使用v-model指令实现。v-model指令会在表单元素上创建一个监听器,在用户输入时实时更新Vue实例的数据,并且在Vue实例数据变化时更新表单元素的值。 如何在Vue中定义一个方法?…...

2023-05-09 LeetCode每日一题(有效时间的数目)

2023-05-09每日一题 一、题目编号 2437. 有效时间的数目二、题目链接 点击跳转到题目位置 三、题目描述 给你一个长度为 5 的字符串 time ,表示一个电子时钟当前的时间,格式为 “hh:mm” 。最早 可能的时间是 “00:00” ,最晚 可能的时间…...

第三节课 Linux文件权限

目录 文件属性详解 权限修改 文件所有者与属组修改 文件默认权限修改 Linux是多人多任务的操作系统,因此可能常常会有多人使用一台机器, 为了考虑每个人的隐私、方便用户合作,每个文件都有三类用户,权限是基于这三类用户设定的…...

开发STC89C51系列单片机需要的单片机技术

端口操作:控制单片机的输入输出端口,与外界进行通信。中断优先级:当多个中断同时发生时,确定哪个中断优先级更高,优先响应。时钟模块:控制单片机的时钟,可以精确计时。PWM技术:实现模…...

分布式键值存储是什么?(分布式键值存储大值)

文章目录 什么是分布式键值存储?分布式键值存储“大值”指什么? 什么是分布式键值存储? 分布式键值存储是一种分布式数据存储系统,它将数据存储为键值对的形式,并将这些键值对分散在多个节点上。每个节点都可以独立地…...

多线程(线程同步和互斥+线程安全+条件变量)

线程互斥 线程互斥: 任何时刻,保证只有一个执行流进入临界区访问临界资源,通常对临界资源起到保护作用 相关概念 临界资源: 一次仅允许一个进程使用的共享资源临界区: 每个线程内部,访问临界资源的代码&am…...

Flutter学习——开发Flutter需要的技能

第二章 Flutter开发所需要掌握的知识 文章目录 第二章 Flutter开发所需要掌握的知识前言一、开发语言Dart语言Android/Ios知识 二、组件学习三、调试与性能优化总结 前言 上一章,介绍了Flutter的来源和平台支持及特点,这一章,来梳理一下学习…...

SPSS如何进行因子分析和主成分分析之案例实训?

文章目录 0.引言1.因子分析2.主成分分析 0.引言 因科研等多场景需要进行数据统计分析,笔者对SPSS进行了学习,本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结,本文对因子分析和主成分分析进行阐述。 1.因…...

图标字体与HTML转义字符:网页设计中的两个关键概念

在网页设计中,图标字体和HTML转义字符是两个重要的概念。图标字体用于显示网页的图标,可以让用户更加直观地理解网页的内容。而HTML转义字符则用于在网页中插入特殊的字符,以保证网页的安全性和可读性。 一、图标字体 在网页中显示图标&#…...

Elasticsearch详解

文章目录 概览使用与ES交互索引创建索引查询索引删除文档创建修改文档局部修改文档查询文档删除全查询 整合SpringBootpom依赖application.ymlElasticsearchAutoConfigurationElasticsearchPropertiesElasticsearchConstantPersonSearchPageHelperPersonServiceBaseElasticsear…...

学习笔记(13)网络基础

目录 1,get与post的区别2,JSON解析2.1,JSON.stringify2.2,JSON.parse 3,cookie3.1,set方法3.2,cookie方法用于设置响应头, 4,http模块4.1,请求报文和响应报文…...

基于FastAPI与LangChain的AI应用开发工具集shapi深度解析

1. 项目概述:一个面向开发者的AI工具集最近在GitHub上看到一个挺有意思的项目,叫wronai/shapi。光看这个名字,可能有点摸不着头脑,但点进去一看,发现这是一个围绕AI应用开发,特别是大语言模型(L…...

解锁网易云音乐NCM格式:让加密音乐重获自由的完整指南

解锁网易云音乐NCM格式:让加密音乐重获自由的完整指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾在网易云音乐下载了心爱的歌曲,却发现在其他播放器上无法播放?这种困扰源于网易云音…...

The Incredible PyTorch终极指南:探索全球开发者贡献者墙的完整资源宝库

The Incredible PyTorch终极指南:探索全球开发者贡献者墙的完整资源宝库 【免费下载链接】the-incredible-pytorch The Incredible PyTorch: a curated list of tutorials, papers, projects, communities and more relating to PyTorch. 项目地址: https://gitc…...

崩坏星穹铁道模拟宇宙自动化工具架构剖析与实战指南

崩坏星穹铁道模拟宇宙自动化工具架构剖析与实战指南 【免费下载链接】Auto_Simulated_Universe 崩坏:星穹铁道 模拟宇宙自动化 (Honkai Star Rail - Auto Simulated Universe) 项目地址: https://gitcode.com/gh_mirrors/au/Auto_Simulated…...

高效自动化病理图像分析:QuPath多通道批处理技术深度解析

高效自动化病理图像分析:QuPath多通道批处理技术深度解析 【免费下载链接】qupath QuPath - Open-source bioimage analysis for research 项目地址: https://gitcode.com/gh_mirrors/qu/qupath 在数字病理学和生物图像分析领域,研究人员经常面临…...

从HDLbits的Getting Started到Vectors:新手如何避开Verilog入门最常见的5个坑

从HDLbits的Getting Started到Vectors:新手如何避开Verilog入门最常见的5个坑 第一次接触Verilog时,很多人会带着编程语言的思维惯性一头扎进HDLbits的练习题,结果在基础语法和向量操作上反复栽跟头。作为电子设计自动化(EDA&…...

为什么你的Clay图总像塑料?5个被忽略的光照锚点参数,今天必须改!

更多请点击: https://intelliparadigm.com 第一章:Clay图为何总像塑料?——光照失真的本质归因 Clay渲染(又称“黏土着色”或“flat shading with ambient occlusion”)在UI预览、设计稿交付与快速原型中被广泛采用&…...

BetterNCM插件管理器实战指南:网易云音乐扩展架构深度解析

BetterNCM插件管理器实战指南:网易云音乐扩展架构深度解析 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM Installer是一款基于Rust语言开发的网易云音乐插件管理…...

OBS多平台直播插件:打破平台限制的5分钟专业解决方案

OBS多平台直播插件:打破平台限制的5分钟专业解决方案 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 想象一下这样的场景:你精心准备的游戏直播即将开始&#xf…...

3分钟掌握暗黑破坏神2存档编辑器:免费在线工具让你的游戏体验全面升级

3分钟掌握暗黑破坏神2存档编辑器:免费在线工具让你的游戏体验全面升级 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为刷不到心仪的装备而烦恼吗?想要快速体验不同职业的乐趣却不想重新练级&#x…...