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

SQL ASNI where from group order 顺序 where和having,SQL底层执行原理

在这里插入图片描述
SQL语句执行顺序:
from–>where–>group by -->having — >select --> order

第一步:from语句,选择要操作的表。

第二步:where语句,在from后的表中设置筛选条件,筛选出符合条件的记录。

第三步:group by语句,把筛选出的记录进行分组。

第四步:having语句,设置条件筛选分组后的数据。

第五步:select语句,选取经过上述流程后的结果集。

第六步:order by语句:将select后的结果集按照顺序展示出来。

注意:

掌握SQL语句执行流程非常重要,是理解并写好SQL语句的前提,根据实际业务逻辑要执行的数据库操作对应到SQL语句的执行流程能够帮助我们快速写出相应功能的标准SQL语句。

where和having区别:
where在group by前, having在group by 之后。
where 用于 过滤数据行 , having 用去过滤分组,是结果集过滤
where 针对数据库文件进行过滤,having 针对查询结果进行过滤,也就是说 where 根据数据表中的字段直接进行过滤的 having是根据前面已经查询出的字段(结果集)进行过滤 ,where 先过滤 having 后过滤
where中不能使用聚合函数,having中可以使用聚合函数。原因:因为聚合函数是针对结果集进行的,但where是在查询结果集之前进行,故where中不能使用聚合函数;having是针对结果集做筛选的,故一般把聚合函数放在having中。
HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 HAVING 支持 WHERE 关键字中所有的操作符和语法。

在这里插入图片描述

sql 查询执行顺序

SQL 92

select col1,col2,avg(col3)...coln      ###  avg  聚合函数又叫组函数,from  t1,t2.。。tnwhere 多表查询的连接条件   and   不包含聚合函数的过滤条件group by   col3.。。having   包含聚合函数的过滤条件     # sum(xxx)>1000order by    coln  asc  ,coln  desc
limit          #   sql server  中没有limit 关键字

SQL 99

select col1,col2,avg(col3)...coln      ###  avg  聚合函数又叫组函数,from  t1  [leftrightinner] join t2  on 多表查询的连接条件where  不包含聚合函数的过滤条件group by   col3.。。having   包含聚合函数的过滤条件     # sum(xxx)>1000order by    coln  asc  ,coln  desc
limit          #   sql server  中没有limit 关键字

在这里插入图片描述

在select 语句执行这些【from ——>where——>group by——>having——> select ——>order by——>limit】步骤时,每步都会产生一个虚拟表,然后这个虚拟表传入一下步中作为输入。 这些步骤隐含在sql执行过程中,对于我们来说是不可见的。。

子查询

在select 语句中,除了 group by和 limit 之前,其他的位置都可以声明 子查询

相关文章:

SQL ASNI where from group order 顺序 where和having,SQL底层执行原理

SQL语句执行顺序: from–>where–>group by -->having — >select --> order 第一步:from语句,选择要操作的表。 第二步:where语句,在from后的表中设置筛选条件,筛选出符合条件的记录。 …...

Mac M2 Ventura(13.3) 新机 安装Cocoapods

1.执行命令: sudo gem install cocoapods 因为是新机,内置的ruby版本是(2.6.0)太低,会报错 所以需要安装新的ruby版本 2.如果已经安装了低版本的homebrew,可以先卸载: 卸载: /b…...

Unity 引擎做残影效果——2、屏幕后处理方式

Unity实现残影效果 大家好,我是阿赵。 这里继续介绍Unity里面做残影的方法。之前介绍了BakeMesh的方法做残影,这一期介绍的是用屏幕后处理的方法做残影。 一、原理 之前的BakeMesh方法,是真的生成了很多个网格模型在场景里面。如果用后处理做…...

考研算法38天:反序输出 【字符串的翻转】

题目 题目收获 很简单的一道题&#xff0c;但是还是有收获的&#xff0c;我发现我连scanf的字符串输入都忘记咋用了。。。。。我一开始写的 #include <iostream> #include <cstring> using namespace std;void deserve(string &str){int n str.size();int…...

“深入解析JVM:探秘Java虚拟机的工作原理“

标题&#xff1a;深入解析JVM&#xff1a;探秘Java虚拟机的工作原理 摘要&#xff1a;本文将深入探讨Java虚拟机&#xff08;JVM&#xff09;的工作原理&#xff0c;包括类加载、内存管理、垃圾回收、即时编译等关键概念。通过详细解析JVM的各个组成部分&#xff0c;读者将能够…...

[Flask]SSTI1

根据题目提示&#xff0c;这关应该是基于Python flask的模版注入&#xff0c;进入靶场环境后就是一段字符串&#xff0c;而且没有任何提示&#xff0c;有点难受&#xff0c;主要是没有提示注入点 随机尝试一下咯&#xff0c;首先尝试一下guest&#xff0c;GET传参 但是没有反应…...

Object Map 的相互转换

学生业务对象定义&#xff1a;Student Student student new Student(); student.setId(1L); student.setName("令狐冲") student.setAge(10) 第一种&#xff1a;通过Alibaba Fastjson实现 pom.xml 文件依赖 <dependency><groupId>com.alibaba</g…...

VS+Qt环境下解决中文乱码问题

目录 原因解决方案总结 原因 使用VSQt出现中文乱码的情况一般都是给控件添加中文文本时出现&#xff0c;而控件需要的字符串类型是QString&#xff0c;默认是utf-8。在 Visual Studio 中&#xff0c;源代码文件的默认执行字符集可能是 Windows 默认的 ANSI 字符集&#xff0c;…...

互联网摸鱼日报(2023-08-08)

互联网摸鱼日报(2023-08-08) 36氪新闻 宝洁、欧莱雅、联合利华加大广告预算投入&#xff1a;越萧条&#xff0c;要越营销&#xff1f; 把智能手机的“高端货”装进汽车&#xff0c;厂商的脑洞越来越大了 王一博《热烈》票房破7亿&#xff0c;街舞是一门怎样的生意&#xff1…...

NTT DATA利用相干伊辛机模拟基因组组装和疾病治疗的潜力

​ &#xff08;图片来源&#xff1a;网络&#xff09; 7月20日&#xff0c;日本领先的IT服务提供商和行业咨询公司NTT DATA宣布完成了一个使用量子计算优化基因组组装过程的项目。这是量子计算应用于医疗保健和生命科学行业中的一个里程碑。 本项目通过比较量子和非量子计算方…...

哈希表语法(转载自用)

哈希表 哈希表是一种很常见的数据结构,我现在平时刷算法题一般使用C++刷(不要问我为什么,懂的都懂)。C++关于哈希表有很多数据结构,平时使用的比较多的有unordered_set 跟 unordered_map。其中unordered_map 存储的是键值对。 其实我们在某些情况下可以使用数组构建哈希表…...

打破界限,图文档与物料清单完美互联

在现代企业的产品开发过程中&#xff0c;图文档和物料清单是不可或缺的重要信息。然而&#xff0c;由于数据来源多样、格式繁杂&#xff0c;图文档与物料清单之间的信息传递往往存在障碍。而PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;的…...

【电机绘图】:插补算法(一)—直线插补—逐点比较法

今日介绍学习一种使用电机作画、绘图、加工零件时需要使用的算法 &#xff1a; 插补算法 本文提供直线插补的概念基础&#xff0c;基本思路分析&#xff0c;C语言实现等&#xff0c;代码会直接贴出&#xff01; 插补算法是指在数值计算或数据处理中&#xff0c;根据已有的数据…...

16-2_Qt 5.9 C++开发指南_使用样式表Qss自定义界面

进行本篇介绍学习前&#xff0c;请先参考链接01_1_Qt工程实践_Qt样式表Qss&#xff0c;后再结合本篇进行融合学习如何使用样式表定义界面。 文章目录 1. Qt样式表2. Qt样式表句法2.1 一般句法格式2.2 选择器 (selector)2.3 子控件&#xff08;sub-controls&#xff09;2.4 伪状…...

chatgpt openai API报错openai.error.APIConnectionError

openai.error.APIConnectionError: Error communicating with OpenAI: 报错信息无用方案问题查看urllib3版本方法 可行方案法1法2&#xff1a;自己找包安装 报错信息 raise error.APIConnectionError( openai.error.APIConnectionError: Error communicating with OpenAI: HTT…...

【果树农药喷洒机器人】Part1:研究现状分析以及技术路线介绍

本专栏介绍&#xff1a;付费专栏&#xff0c;持续更新机器人实战项目&#xff0c;欢迎各位订阅关注。 关注我&#xff0c;带你了解更多关于机器人、嵌入式、人工智能等方面的优质文章&#xff01; 文章目录 一、项目背景二、国内外研究现状2.1 国内研究现状2.2 国外研究现状 三…...

QT-QTablewidget 设置选中某一行

要在 QTableWidget 中设置选中的行&#xff0c;可以使用 setCurrentItem() 函数来设置当前的 QTableWidgetItem。你可以通过调用 QTableWidget 的 item() 函数获得指定行和列的 QTableWidgetItem&#xff0c;然后通过将其传递给 setCurrentItem() 函数来设置选中的行。 下面是…...

[shell] 删除指定文件状态变更之前的文件及文件夹示例

参考文件 Linux查找某个指定时间要求的文件 脚本示例 #!/bin/bash# 删除指定时间之前文件&#xff0c;单位&#xff1a;分钟 ago75# 监控路径,必须使用使用绝对路径&#xff0c;防止意外删除重要文件 monitoring_path"/home/dev/test/test" # 使用find命令查找75分…...

代码中 isEmpty 和 isBlank 的区别

isEmpty系列 StringUtils.isEmpty() 是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")false tringUtils.isEmpty(null) true StringUtils.isEmpty("") true StringUtils.isEmpty(" …...

为什么要选择文件传输软件?有哪些最佳高速文件传输软件?

是否经历过这样的场景&#xff0c;正在努力地完成工作任务&#xff0c;但是由于制作的数据无法及时传送给合作伙伴&#xff0c;工作流程被打断了&#xff1f;这听起来很令人沮丧&#xff0c;对吧&#xff1f;可是&#xff0c;这种情况在现实中并不罕见。 因此&#xff0c;需要…...

Pro Trinket:Arduino UNO的紧凑型替代方案与双模编程实战

1. Pro Trinket&#xff1a;当Arduino遇上“口袋工程学”如果你和我一样&#xff0c;在创客圈子里摸爬滚打多年&#xff0c;肯定经历过这样的场景&#xff1a;一个基于Arduino UNO的酷炫原型在面包板上运行得风生水起&#xff0c;但当你试图把它塞进一个精致的3D打印外壳&#…...

Godot游戏引擎与强化学习结合:从零构建AI智能体的实战指南

1. 项目概述&#xff1a;当游戏开发遇上强化学习如果你是一名游戏开发者&#xff0c;或者对游戏AI的实现抱有浓厚兴趣&#xff0c;那么“edbeeching/godot_rl_agents”这个项目绝对值得你花时间深入研究。简单来说&#xff0c;这是一个将当下最热门的强化学习技术与免费、开源的…...

量子退火与经典优化结合的金融投资组合优化实践

1. 量子退火与经典优化结合的金融投资组合优化实践在金融投资领域&#xff0c;如何构建最优投资组合一直是核心挑战。传统方法如现代投资组合理论(MPT)和均值-方差优化(MVO)虽然奠定了理论基础&#xff0c;但在处理大规模资产配置时往往面临计算效率瓶颈。近年来&#xff0c;量…...

Arm Neoverse CMN-700一致性网格网络架构与寄存器配置详解

1. Arm Neoverse CMN-700一致性网格网络架构解析 在现代多核处理器设计中&#xff0c;一致性网格网络&#xff08;Coherent Mesh Network&#xff09;已成为解决核间通信瓶颈的关键技术。Arm Neoverse CMN-700作为第二代一致性互连架构&#xff0c;相比前代CMN-600在拓扑灵活性…...

FeFET时间域内存计算宏:突破AI边缘计算能效瓶颈

1. 项目概述&#xff1a;FeFET时间域内存计算宏的创新实现在人工智能和边缘计算蓬勃发展的当下&#xff0c;传统冯诺依曼架构面临着一个根本性挑战&#xff1a;数据在处理器和存储器之间的频繁搬运导致的高能耗和延迟瓶颈。这个问题在需要大量并行乘累加(MAC)运算的神经网络应用…...

大模型涌现能力:从原理到工程实践的激发与评测方法

1. 项目概述&#xff1a;从“玄学”到“可操作”的涌现能力拆解最近和几个做模型训练和评测的朋友聊天&#xff0c;话题总绕不开“涌现能力”。这个词现在火得不行&#xff0c;但聊深了发现&#xff0c;大家对这个概念的理解其实挺割裂的。有人说它是大模型“开窍”的瞬间&…...

终极指南:erd实体关系图生成器的社区生态与开源贡献全解析

终极指南&#xff1a;erd实体关系图生成器的社区生态与开源贡献全解析 【免费下载链接】erd Translates a plain text description of a relational database schema to a graphical entity-relationship diagram. 项目地址: https://gitcode.com/gh_mirrors/er/erd 你是…...

Wormhole NFT Bridge 详解:跨链数字资产转移的完整方案

Wormhole NFT Bridge 详解&#xff1a;跨链数字资产转移的完整方案 【免费下载链接】wormhole A reference implementation for the Wormhole blockchain interoperability protocol. 项目地址: https://gitcode.com/gh_mirrors/wo/wormhole Wormhole NFT Bridge 是 Wor…...

ADC选型新思路:从抗混叠架构革新到极致集成设计

1. 从“采样”到“混叠”&#xff1a;一个老问题的现代解法做信号链设计&#xff0c;ADC选型永远是绕不开的核心。这些年&#xff0c;从工业物联网的传感器节点到汽车雷达的信号处理板&#xff0c;我经手过不少项目&#xff0c;一个深刻的体会是&#xff1a;系统性能的瓶颈&…...

C++、汇编与易语言:三大编程语言深度对比

好的&#xff0c;我们来比较一下 C、汇编语言和易语言这三种编程语言的主要区别&#xff1a;抽象层级和与硬件的距离&#xff1a;汇编语言&#xff1a; 这是最低级的编程语言之一。它使用特定于 CPU 架构的 助记符&#xff08;如 MOV, ADD, JMP&#xff09;来直接操作 寄存器 和…...