【MySQL】:复合查询

复合查询

  • 一.多表查询
  • 二.自连接
  • 三.子查询
    • 1.单行子查询
    • 2.多行子查询
    • 3.多列子查询
    • 4.在from语句里使用子查询
    • 5.合并查询

准备三张表

在这里插入图片描述

emp表

在这里插入图片描述

dept表

在这里插入图片描述

salgrade表

在这里插入图片描述

一.多表查询

实际开发中往往数据来自不同的表,所以需要多表查询。我们用一个简单的公司管理系统,有三张表EMP,DEPT,SALGRADE来演示如何进行多表查询。

显示雇员名、雇员工资以及所在部门的名字因为上面的数据来自EMP和DEPT表,因此要联合查询

首先什么是笛卡尔积

在这里插入图片描述

简而言之就是对多张表进行组合排列。

接着进行联合查询

在所有组合排列里选出合法的数据(员工的部门号与该部门相对应)

在这里插入图片描述

二.自连接

自连接是指在同一张表连接查询。

注意因为表名原因,所以在进行笛卡尔积时需要进行重命名避免名字重复

在这里插入图片描述

一个例子

显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号–empno)

由于领导也是员工,也在emp表里,所以我们一般的查找顺序是先在emp表里找到员工FORD,再找到对应的领导编号。接着再用该编号又在emp表里找到领导,把领导的信息筛选出来。

我们可以让emp和emp进行笛卡尔积(组合,两张表拼在一起),然后再从所有组合里找出符合条件的。

在这里插入图片描述

三.子查询

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

1.单行子查询

返回一行记录的子查询。

显示SMITH同一部门的员工

首先找到SMITH所在的部门,再查找该部门员工的信息。

在这里插入图片描述

2.多行子查询

返回多行记录的子查询.

1.查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的

in关键字表示在某个集合之中。10号部门的工作岗位有多个,所以是一个集合,我们只需要找到其他员工的工作岗位与10号部门集合中的任意一个相匹配,就将其筛选出来。

所以,先找出10号部门的工作岗位集合,在找与之相匹配的员工。

在这里插入图片描述

2.显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号

all关键字代表所有。这里要找工资比30号部门的所有员工工资都高,可以使用all关键字。(当然也可以用max).

先找到30号部门所有员工的工资,再筛选出工资更高的员工。

在这里插入图片描述

3.显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工)

any关键字代表任意一个。(当然这里也可以使用min)

在这里插入图片描述

3.多列子查询

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

查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人

在这里插入图片描述

4.在from语句里使用子查询

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

1.显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资

我们可以把各个部门的平均工资看作临时表(注意这个表需要取别名),然后再从这个表和emp表里查询需要的信息。

在这里插入图片描述

2.查找每个部门工资最高的人的姓名、工资、部门、最高工资

先找到每个部门的最高工资和部门号形成临时表,再在临时表和emp表里找需要的信息。

在这里插入图片描述

3.显示每个部门的信息(部门名,编号,地址)和人员数量

把部门号和部门人数形成临时表,与dept表一起再进行信息查询。

在这里插入图片描述

5.合并查询

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

将工资大于2500或职位是MANAGER的人找出来

去重

在这里插入图片描述

不去重

在这里插入图片描述

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

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

相关文章

HPM6750系列--第十一篇 Uart讲解(轮询模式)

一、目的 在介绍完GPIO的相关内容下一个必须介绍的就是uart了,因为串口一个主要用途就是用于调试信息打印。 HPM6750在uart的配置上也是相当炸裂,有17个串口;结合HPM6750的高主频高内存,完全可以作为一个串口服务器。 ​​​​​​…

智能优化算法应用:基于天牛须算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于天牛须算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于天牛须算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.天牛须算法4.实验参数设定5.算法结果6.参考文…

MLOps在极狐GitLab 的现状和前瞻

什么是 MLOps 首先我们可以这么定义机器学习(Machine Learning):通过一组工具和算法,从给定数据集中提取信息以进行具有一定程度不确定性的预测,借助于这些预测增强用户体验或推动内部决策。 同一般的软件研发流程比…

【lesson17】MySQL表的基本操作--表去重、聚合函数和group by

文章目录 MySQL表的基本操作介绍插入结果查询(表去重)建表插入数据操作 聚合函数建表插入数据操作 group by(分组)建表插入数据操作 MySQL表的基本操作介绍 CRUD : Create(创建), Retrieve(读取),Update(更新)&#x…

【TB作品】STM32 PWM之实现呼吸灯,STM32F103RCT6,晨启

文章目录 完整工程参考资料实验过程 实验任务: 1:实现PWM呼吸灯,定时器产生PWM,控制实验板上的LED灯亮灭; 2:通过任意两个按键切换PWM呼吸灯输出到两个不同的LED灯,实现亮灭效果; 3&…

Axure的案例演示

增删改查: 在中继器里面展示照片

创建型模式之抽象工厂模式

一、概述 1、抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 2、抽象工厂模式:一个工厂可以生产一系列产品(一族产品),极大减少了工厂类的数量 3、抽象工厂模式&am…

众和策略:加强经济监测预测预警 加大宏观调控力度

12月17日至18日,全国展开和革新作业会议在京举行,整理总结2023年展开革新作业,组织布置2024年展开革新关键使命。会议指出,中心经济作业会议对本年经济作业作了全面体系总结,侧重我国经济全体上升向好,全年…

选择合适教育管理软件:必须考虑的10个关键问题

随着教育行业的迅速数字化,学校要能够提供最新的管理和教育方法。大家逐渐意识到技术让运营变得更容易、更有效率。 不过首先我们需要找到一个能满足需求的应用程序。面对众多的选择,你该如何选择一个合适的平台呢?当然,没有人想…

MYSQL中使用IN,在xml文件中怎么写?

MYSQL: Spring中: mysql中IN后边的集合,在后端中使用集合代替,其他的没有什么注意的,还需要了解foreach 语法即可。

Spark编程实验一:Spark和Hadoop的安装使用

目录 一、目的与要求 二、实验内容 三、实验步骤 1、安装Hadoop和Spark 2、HDFS常用操作 3、Spark读取文件系统的数据 四、结果分析与实验体会 一、目的与要求 1、掌握在Linux虚拟机中安装Hadoop和Spark的方法; 2、熟悉HDFS的基本使用方法; 3、掌…

SCADA助力食品加工数字化变革:未来产业的智慧引擎

一、背景介绍 当前,在国际市场竞争加剧、消费者个性化需求突出的背景下,我国食品加工行业面临着诸多挑战:越发严苛的食品安全标准、追求供应链的透明度和效率、进一步提高产品质量和降低成本等等。 为了应对上述挑战,我国食品加…

亚马逊,速卖通,shein卖家如何准确有效的测评补单

一、合理规划测评时间和数量 卖家需要合理规划测评的时间和数量。如果卖家过于频繁地进行测评,或者在短时间内进行大量的测评,这可能会被视为恶意行为,从而触犯风控机制。因此,卖家需要根据自己的销售情况和市场需求,…

如何确保对称密钥管理的存储安全?

确保对称密钥管理的存储安全是保障信息安全的重要一环。以下是一些建议,以确保对称密钥管理的存储安全: 使用安全存储设备:选择使用经过验证的安全存储设备来存储对称密钥。这些设备通常具有高度的物理安全性,可以防止未经授权的访…

vp与vs联合开发-通过CogAcqFifoTool工具连接相机

1.完成相机硬件配置后 2.完成vp与vs联合开发配置功能后 1.创建winform 项目 目的 : 搭建 界面应用 2. 1. vpp文件存入 项目的debug 目录中 目的: 在项目中加载本地vpp文件 读取相机工具 1.控件CogRecordDisplay 用于显示相机拍摄照片和实施显示的窗口 2和3 …

aidd【人工智能技术及在生物分子活性预测、药物发现中的应用】

人工智能技术在生物分子活性预测和药物发现中具有广泛的应用。以下是一些具体的应用方式: 生物分子活性预测:利用机器学习算法,可以对生物分子的活性进行预测。这些算法可以学习并识别与生物分子活性相关的模式,并基于这些模式对…

2024年业务流程管理(BPM)的10大发展趋势

业务流程管理(BPM)及其相关技术已经伴随着企业数十载。然而,在最近几年里,BPM 和它的辅助工具经历了重大的变革,这些变化归功于RPA、流程挖掘和低代码开发平台的兴起。Gartner 也提出了一个全新的概念——“超级自动化…

机器学习笔记 - 用于时间序列分析的深度学习技术

一、简述 过去,时间序列分析采用自回归综合移动平均线等传统统计方法。然而,随着深度学习的出现,研究人员探索了各种神经网络架构来建模和预测时间序列数据。 深度学习技术,例如(LSTM)长短期记忆、卷积神经网络和自动编码器,已经在时间序列预测、异常检测和模式识别方面…

UE5 C++(六)— 枚举UENUM、结构体USTRUCT和补充属性说明符

文章目录 枚举(ENUM)第一种方式第二种方式 结构体(USTRUCT)补充属性说明符(ExposeOnSoawn)结构体创建数据表格 枚举(ENUM) 第一种方式 定义枚举 UENUM(BlueprintType) namespace …

Rust基本语法

Rust基本语法 Hello World fn main() {println!("Hello, world!"); }Rust数据类型 Rust 是一种静态类型的语言。 Rust 中的每个值都是某种数据类型。 编译器可以根据分配给它的值自动推断变量的数据类型。 声明变量 使用关键词 let 声明变量。 直接赋值的场合R…