MySQL数据库:联合查询、子句查询、合并查询

news2025/1/18 8:52:06

一、联合查询

1.概念

        简单理解就是将多张表合并到一起,然后进行数据查询,所有也叫多表联查。

如何将两张表合并到一起?

        取两张表的笛卡儿积:将表1中的数据逐条与表2中的数据进行合并,最终形成的新的临时表(它的数据条数即为表1的条数*表2的条数)。

        但如果只是单纯的进行合并,会导致最终生成的临时表非常的庞大,因此联合查询的时候通常都会设置一个合并条件,只有符号条件的数据才会被合并在一起。

2.连接方式

2.1内连接

        联合查询根据合并条件合并时,只连接符合合并条件的数据,不符合的全部丢弃。

2.2左连接

        联合查询根据合并条件合并时,以左表作为基础表,在右表中查找符合条件的数据,存在符合条件的数据则合并,不存在则以NULL补全。

2.3右连接

        联合查询根据合并条件合并时,以右表作为基础表,在左表中查找符合条件的数据,存在符合条件的数据则合并,不存在则以NULL补全。

2.4自连接

        在同一张表上连接自身进行查询。

3.连接操作

left_table [inner/left/right] join right_table on conn_condition;

inner join:内连接

left join:左连接

right join:右连接

conn_condition:合并条件        

left_table == right_table:自连接

详细举例介绍:MySQL 多表查询 "Join"+“case when”语句总结

四、子句查询

1.概念

        子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。即一个sql语句查询的过滤条件,依赖于另一个sql语句的查询结果。

2.单行子查询

        子句返回的结果记录只有一行的子查询。可以用'='来进行比较判断。

例如:select * from student where class_id=(select class_id from class where sname='张三');

3.多行子查询

[not] in关键字:

        子句返回的结果记录为多行,此时不能使用'='进行比较判断,需要使用关键字in或not in来过滤存在于返回的结果集中或不存在于结果集中的记录。

例如:select * from student where class_id in (select class_id from class where credit=2);

[not] exists关键字:

        exists是对子语句的查询结果进行判断,是否有查询结果,有则会真,没有则为假。

例如:select * from student where exists (select * from class where credit=2 and id=student.class_id);

in和exists的区别:

        in是先执行子sql语句将结果放入内存中,再执行住sql语句,将每条结果与子语句返回的结果进行逐个比较,相同则取出。相当于每条数据都要跟返回的集合中的数据进行一次比对。

        exists是先执行主语句,逐条取出数据,将数据的某个字段融入到子语句中进行执行,如果有查询结果则返回真,否则返回假。相当于针对主语句结果中的每一条数据都要去子语句中重新查一次表。

适用场景:

        子句结果不多的情况下,适合用in;子句结果较多时,适用exists。

五、合并查询

1.概念

        合并查询并不是把多个表合并起来查询,而是把多个类似的sql语句的结果合并一起返回,每个sql语句都是独立执行的。

注意:合并查询的结果集中,字段需要一致。

 合并查询与使用or查询的区别:

        一个sql语句中如果用到了o就会或略索引,而索引可以大大提高查询效率,所以使用到了or会或略索引,降低了查询效率。

        而合并查询并不会或略索引,在这种情况下,合并查询反而效率更高。

2. union

union:用于取得两个结果集的并集,并且会自动去掉结果集中的重复行。

3. union all

union all:用于取得两个结果集的并集,但不会去掉结果集中的重复行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

py征途4之无效思路

事件回顾: 近期班里组织了一个跑团,使用的是keep跑团助手(小程序)。每个人都有一个昵称,要对“每日跑量”进行统计,以明确到底有哪些人跑了步,哪些人没跑步。 为了解决这个问题,从3月…

springboot登录校验[JWT]

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:个人主页1 || 笑霸final的主页2 📕系列专栏:后端专栏 📧如果文章知识点有错误的地方,…

Spring Transaction 源码解读

Spring Transaction 规范的maven坐标如下&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>...</version></dependency>该包提供了spring事务规范和默认的jta(ja…

【SSM】SSM整合步骤和流程细化

整合SSM参考文献一、SSM整合前概述1. 各个框架在三层架构模式中所担任的角色2. 两个IOC容器的创建1&#xff09;整合时Spring中IOC容器的创建时间2&#xff09;Spring提供的监听器&#xff08;ContextLoaderListener&#xff09;二、SSM整合步骤参考文献 卤蛋的SSM整合完整流程…

华为nat配置实验:内网能够访问外网,内网服务器80端口映射出去

一 需求分析1.1 需求公司A在北京&#xff0c;公司B在上海&#xff0c;本次实验仅仅模拟局域网内出口路由器的配置&#xff0c;公司A业务流量较大&#xff0c;并且预算有限。公司B模拟外网的一个小型局域网&#xff0c;要求公司B的主机能够访问公司A的web服务器。1.2 分析采用na…

Linux中滴计划任务

计划任务计划任务计划任务分类at命令load averagecrontab命令配置文件通常包含三个部分cron服务配置文件cron服务的日志文件时间数值的特殊表示方法应用实例案例anacron服务计划任务 计划任务&#xff08;Cron Job&#xff09;是指在预定的时间自动执行一些指定的任务或脚本。…

Pytorch使用预训练好的卷积神经网络进行推理预测

本小节将会介绍如何利用已经预训练好的卷积神经网络模型对一张图像进行预测&#xff0c;并且通过可视化的方法&#xff0c;查看模型是如何得到其预测结果的。 我们直接看一个实例&#xff0c;利用已经预训练好的VGG16卷积神经网络对一张图像获取一些特定层的输出&#xff0c;并…

通过python理解光的偏振

文章目录基本原理椭圆偏振光基本原理 光是横波&#xff0c;可以写成E⃗A⃗cos(ωt−k⃗r⃗)\vec E \vec{A}cos(\omega t-\vec k\vec r)EAcos(ωt−kr)&#xff0c;振动方向与传播方向垂直&#xff0c;而在三维空间中&#xff0c;与光线垂直的乃是法平面。换言之&#xff0c;光…

【Minecraft开服】Windows搭建我的世界MC服务器「公网远程联机」

文章目录1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址9. 使用固定公网地址远程联机简单…

【计算机网络-网络层】IPv4 和 IPv6

文章目录第一部分&#xff1a;IPv4&#xff08;IP 协议版本 4&#xff09;1 IP 数据报1.1 IP 数据报格式1.2 相关例题2 分类编址&#xff08;两级结构&#xff0c;网络号定长&#xff09;2.1 IP 地址的表示方法2.2 IP 分类编址2.3 IP 地址的特殊用途3 无分类编址 CIDR&#xff…

PyTorch 之 神经网络 Mnist 分类任务

文章目录一、Mnist 分类任务简介二、Mnist 数据集的读取三、 Mnist 分类任务实现1. 标签和简单网络架构2. 具体代码实现四、使用 TensorDataset 和 DataLoader 简化本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 一、Mnist 分类任…

recyclerview中树状结构的实现,加载本地中文件夹信息

引文&#xff1a; 在项目实现中&#xff0c;对于树状图结构的分析一直无法实现正确的效果&#xff0c;结果查看别人的项目都不要适合我的应用场景&#xff0c;但是查看其实原理是差不多的&#xff0c;但是我没有看明白&#xff0c;所以一直在看这方面的东西。查阅并修改他人的代…

ADSP21489之CCES开发笔记(九)

21489评估板调试SigmaStudio&#xff0c;录音&#xff0c;算法效果对比等等&#xff0c;依此写上该文章&#xff0c;以便有兴趣的朋友参考之用。 一、硬件链路图 二、导入21489Demo程序 2.1、Demo路径&#xff1a;2.2、导入ADI的21489的Demo程序 修改相关代码 oCommConfig.n…

小白学Pytorch系列--Torch.optim API Base class(1)

小白学Pytorch系列–Torch.optim API Base class(1) torch.optim是一个实现各种优化算法的包。大多数常用的方法都已得到支持&#xff0c;而且接口足够通用&#xff0c;因此将来还可以轻松集成更复杂的方法。 如何使用优化器 使用手torch.optim您必须构造一个优化器对象&…

下载和阅读Android源码

目录一、如何下载AOSP1.全量下载2.单个下载目录结构二、如何阅读AOSP1.要阅读哪些源码2.阅读源码的顺序和方式2.1 阅读顺序2.2 阅读方式3.用什么工具来阅读3.1 下载安装Source Insight3.2 导入AOSP源码3.3查看源码三、其他一、如何下载AOSP 源码下载是我们分析源码的开始&…

ctfshow愚人杯web复现

easy_signin 题目url base64解码是face.png&#xff0c;尝试flag.txt和flag.php&#xff0c;base64加密后传入都不对&#xff0c;用index.php加密后传入&#xff0c;看源码 将后面的base64解密得到flag 被遗忘的反序列化 源码 <?php# 当前目录中有一个txt文件哦 error_r…

Unity- 游戏结束以及重启游戏

文章目录游戏结束以及重启游戏建个游戏结束页面编写委托类 游戏主角 以及 ui管理类的脚本重启游戏游戏结束以及重启游戏 思路&#xff1a;利用Canvas创建好覆盖全屏的结束页面&#xff0c;默认关闭。游戏结束时&#xff0c;玩家控制的对象发起委托&#xff0c;ui管理收下委托&…

electron+vue3全家桶+vite项目搭建【六】集成vue-i18n 国际化

文章目录注意引入1.引入依赖2.集成vue i18n3.测试代码4.封装多语言切换组件5.测试多语言切换6.优化代码注意 已发现 9.2.2版本的vue-i18n 如果使用cnpm安装&#xff0c;打包会报错&#xff0c;使用npm或者pnpm安装依赖没有问题 引入 如果需要多语言支持&#xff0c;那么最好…

【100个 Unity实用技能】 | Lua中获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前

Unity 小科普 老规矩&#xff0c;先介绍一下 Unity 的科普小知识&#xff1a; Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者&#xff0c;借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案&#xff…

【AI大比拼】文心一言 VS ChatGPT-4

摘要&#xff1a;本文将对比分析两款知名的 AI 对话引擎&#xff1a;文心一言和 OpenAI 的 ChatGPT&#xff0c;通过实际案例让大家对这两款对话引擎有更深入的了解&#xff0c;以便大家选择合适的 AI 对话引擎。 亲爱的 CSDN 朋友们&#xff0c;大家好&#xff01;近年来&…