【lesson21】MySQL复合查询(2)子查询

文章目录

  • 子查询
    • 测试要用到的表
    • 测试要用到的数据
    • 单行子查询
      • 案例
    • 多行子查询
      • 案例
    • 多列子查询
      • 案例
    • 在from子句中使用子查询
      • 案例
    • 合并查询
      • union
      • 案例
      • union all
      • 案例

子查询

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询

测试要用到的表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试要用到的数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

单行子查询

返回一行记录的子查询
也就是嵌套的select只返回一行数据。

案例

显示SMITH同一部门的员工
在这里插入图片描述

多行子查询

返回多行记录的子查询
也就是嵌套的select返回多行数据。

案例

查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的
in关键字
在这里插入图片描述
显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号
法一:
在这里插入图片描述
法二:all关键字
在这里插入图片描述
显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工)
any关键字
在这里插入图片描述

多列子查询

单行子查询是指子查询只返回单列,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句

案例

查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人
在这里插入图片描述
任何时刻,临时查询出来的结果,本质上也是表结构。

在from子句中使用子查询

子查询语句出现在from子句中。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。

案例

显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资
在这里插入图片描述
查找每个部门工资最高的人的姓名、工资、部门、最高工资
在这里插入图片描述

显示每个部门的信息(部门名,编号,地址)和人员数量
法一:使用子查询
在这里插入图片描述
法二:使用多表
在这里插入图片描述
解决多表问题的本质:想办法将多表转化为单表,所以mysql中,所有select的问题全部都可以转化成单表问题。----多表查询的指导思想

合并查询

在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all

union

该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。

案例

将工资大于2500或职位是MANAGER的人找出来
在这里插入图片描述

union all

该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。

案例

将工资大于2500或职位是MANAGER的人找出来
在这里插入图片描述
这里用来同样的案例就是为了展示union和union all的不同。

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

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

相关文章

坚持提升这个能力,让你越来越强大

哈喽,你好啊!我是雷工。 今天在读《张一鸣管理日志》时,看到这么一句话: “产品创新要从根本上解决问题,而不是想办法绕过问题,解决的问题很可能就是将来的核心竞争力。” 这让我想起了亚马逊公司&#x…

LeetCode 热题100——单调栈

​ 个人主页:日刷百题 系列专栏:〖C语言小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 🌎欢迎各位→点赞👍收藏⭐️留言📝 ​ ​ 写在前面: 递增单调栈:栈中元素从栈底到栈顶依次增大 递减单调栈…

3D模型人物换装系统(二 优化材质球合批降低DrawCall)

3D模型人物换装系统 介绍原理合批材质对比没有合批材质核心代码完整代码修改总结 介绍 本文使用2018.4.4和2020.3.26进行的测试 本文没有考虑法线贴图合并的问题,因为生成法线贴图有点问题,放在下一篇文章解决在进行优化 如果这里不太明白换装的流程可以…

HarmonyOS引导页登陆页以及tabbar的代码说明1

效果 以下代码是东拼西凑出来的。只是为了个人熟悉一下相关模块的使用: 用的知识点: Resouces 此部分分内容可以在项目中找到: resources/base/element/color.json 为项目着色配置,当然也可以正接在代码里写 float.json 为相关…

IPv6路由基础-理论与配置

在企业网络中,IPv6技术的应用越来越普及。IETF组织针对IPv6网络制定了路由协议OSPFv3。 OSPFv3 ff02::5是为OSPFv3路由协议预留的IPv6组播地址。OSPFv3中的路由条目下一跳地址是链路本地地址。OSPFv3是运行在IPv6网络的OSPF协议。运行OSPFv3的路由器使用物理接口的…

华为云Stack 8.X 流量模型分析(一)

一、基础知识 1.tap与tun ​ tap与tun都是操作系统(Linux)内核中的虚拟网络设备,等同于一个以太网设备,可以收发数据报文包。 ​ tap与tun的定义相同,两者仅仅是通过一个Flag来区分。但二者所承担的功能差别较大&am…

centos磁盘扩容

[rootlocalhost ~]# fdisk -l磁盘 /dev/sda:429.5 GB, 429496729600 字节,838860800 个扇区 Units 扇区 of 1 * 512 512 bytes 扇区大小(逻辑/物理):512 字节 / 4096 字节 I/O 大小(最小/最佳):4096 字节 / 4096 字节 磁盘标签类…

浅析 fuse kernel mmap write 过程及性能问题

前言 最近在项目里面用到了fuse文件系统,在使用过程中遇到了一个内核在做mmap write的一个bug,目前并没有从根本上解决这个bug,而是通过修改fuse kernel module的一些参数,绕开了这个bug。这里记录一下这个问题,并顺便…

信息收集 - 网站敏感信息

CMS指纹信息: CMS (内容管理系统)又称为整站系统或文章系统,用于网站内容管理。用户只需要下载对应的CMS软件包,就能部署搭建,并直接利用CMS。但是各种CMS都具有其独特的结构命名规则和特定的文件内容,因此可以利用这些内容来获取CMS站点的具体软件CMS与版本。通过识别CMS…

手把手教你在windows上安装Portainer

前言 大家好,我是潇潇雨声。在之前的文章中,我们探讨了在 Windows 上安装 Docker 的方法。今天,我将简要介绍一个开源的轻量级容器管理工具——Portainer,它类似于 navicat。Portainer 是一个与 navicat 类似的工具,但…

facebook广告怎么效果好

要提高Facebook广告的效果,可以尝试以下策略: 明确广告目标:在制定广告计划之前,需要明确广告的目标。这可能包括增加网站流量、提高品牌知名度、推广新产品或提高现有产品的销售量。明确目标后,可以制定相应的广告策…

Amazon Toolkit — CodeWhisperer 使用

tFragment--> 官网:https://aws.amazon.com/cn/codewhisperer/?trkcndc-detail 最近学习了亚马逊云科技的 代码工具,感慨颇多。下面是安装 和使用的分享。 CodeWhisperer,亚马逊推出的实时 AI 编程助手,是一项基于机器学习…

前端八股文(vue篇)

一.vue中的key的作用 key的作用主要是为了高效的更新虚拟dom。另外vue中在使用相同标签名元素的过渡切换时,也会使用到key属性,其目的也是为了让vue可以区分它们,否则vue只会替换内部属性而不会触发过渡效果。 二.接口请求一般放在哪个生命周…

详解数据科学自动化与机器学习自动化

过去十年里,人工智能(AI)构建自动化发展迅速并取得了多项成就。在关于AI未来的讨论中,您可能会经常听到人们交替使用数据科学自动化与机器学习自动化这两个术语。事实上,这些术语有着不同的定义:如今的自动…

【QT Visual Studio环境配置】error MSB8020: 无法找到 v141/v142 的生成工具(完整版)

首先要了解V**平台工具集根据你安装的Visual Studio版本不同而有所区别,知道这个就容易解决问题了,确定你安装的那个版本,需要使用哪个工具集。 v143–>VS2022v142–>VS2019v141–>VS2017v140–>VS2015v120–>VS2013 一、解决…

[kubernetes]基于版本v1.28.5+containerd + helm 搭建集群

0 环境准备 节点数量: 3 台虚拟机 centos7硬件配置: 2G或更多的RAM,2个CPU或更多的CPU,硬盘至少30G 以上网络要求: 多个节点之间网络互通,每个节点能访问外网 1 集群规划 k8s-node1:10.0.0.32k8s-node2:10.0.3.231k…

TypeScript 中的 interface 和 type 有什么区别?应该如何选择?

背景 TypeScript中的 interface 和 type 都是声明自定义类型的方式,但它们有一些区别,适用于不同的使用场景。 两者使用案例 interface interface 主要用于描述对象的形状或者类的结构,这是它最经常的应用场景。 interface使用示例&…

机器学习之线性回归(Linear Regression)附代码

概念 线性回归(Linear Regression)是机器学习中的一种基本的监督学习算法,用于建立输入变量(特征)与输出变量(目标)之间的线性关系。它假设输入变量与输出变量之间存在线性关系,并试图找到最佳拟合线来描述这种关系。 在简单线性回归中,只涉及两个变量:一个是自变量…

MySQL:通过官方mysql server,搭建绿色版mysql服务器(Windows)

1. 官网下载mysql server 下载mysql server的zip文件,地址: https://downloads.mysql.com/archives/community/ 解压后 2. 初始化数据库 运行cmd, 进入bin目录,运行 mysqld --initialize-insecureinitialize-insecure说明如…

python面向对象反射

就是通过字符串的形式操作对象相关属性 反射基本语法 from django.test import TestCase# Create your tests here. class Students:def __init__(self, name, gender):self.name nameself.gender genderdef play(self, game, novel):print(game, novel)s Students(lyz, …