MySQL复合查询

news2024/11/24 17:11:34

文章目录

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

一、多表查询

在实际开发中,数据往往来自不同的表,所以需要多表查询。

对多张表做笛卡尔积,实际上就是多张表的所有记录的排列组合

比如:对两张表做笛卡尔积,就是从第一张表中取出第一条记录,和第二张表的所有记录进行组合,然后从第一张表中取出第二条记录,和第二张表的所有记录进行组合,依此类推,最终得到的就是两张表的笛卡尔积。在这里插入图片描述

多表查询,可以理解为单表查询

select 查询出来的记录,都可理解为一张表

现在用三张表 emp、dept、salgrade 来演示如何进行多表查询。

显示雇员名、雇员工资以及所在部门的名字。
在这里插入图片描述

显示部门号为 10 的部门名,员工名和工资。
在这里插入图片描述

显示各个员工的姓名,工资,及工资级别。
在这里插入图片描述

二、自连接

对相同的表做笛卡尔积。

由于自连接是对同一张表做笛卡尔积,所以需要至少给一张表取别名,否则无法区分这两张表中的列。

显示员工 FORD 的上级领导的编号和姓名。

法一:使用子查询。在这里插入图片描述
法二:使用多表查询。在这里插入图片描述

三、子查询

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

1.单行子查询

返回一行记录的子查询。

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

2.多行子查询

返回多行记录的子查询。

  • in 关键字:

查询和 10 号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含 10 自己的。
在这里插入图片描述

  • all 关键字:

显示工资比部门 30 的所有员工的工资高的员工的姓名、工资和部门号。
在这里插入图片描述

  • any关键字:

显示工资比部门 30 的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工)。
在这里插入图片描述

3.多列子查询

单行子查询是指只返回单列单行数据的子查询;多行子查询是指返回单列多行数据的子查询。它们都是针对单列而言的。

而多列子查询则是指返回多列数据的子查询。

查询和 SMITH 的部门和岗位完全相同的所有雇员,不含 SMITH 本人。
在这里插入图片描述

4.在 from 子句中使用子查询

若子查询语句出现在 from 子句中,把这个子查询当做一个临时表即可

显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资。
思路:需要先获取各个部门的平均工资,并将其看作临时表。在这里插入图片描述

查找每个部门工资最高的人的姓名、工资、部门、最高工资。
在这里插入图片描述

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

法一:使用子查询。在这里插入图片描述法二:使用多表查询。在这里插入图片描述

5.合并查询

为了合并多个 select 的执行结果,可以使用集合操作符 union 和 union all 。

  • union:用于取得两个结果集的并集(自动去掉结果集中的重复行)。
  • union all:用于取得两个结果集的并集(不会去掉结果集中的重复行)。

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

法一:使用 or 。在这里插入图片描述
法二:使用 union 。在这里插入图片描述

使用 union all 不会去重。
在这里插入图片描述

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

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

相关文章

js 特殊对象 - 数组

1.概述 数组也是对象的一种,数组是一种用于表达有顺序关系的值的集合的语言结构,也就是同类数据元素的有序集合。 数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据。但是在JavaScript中是支持数组可以是不同的元素&…

使用CH9102F平替ESP32系列下载电路中的CP2102

乐鑫官方ESP32开发板的外围电路主要包含: USB-UART电路自动下载电路RC延迟电路重启按键下载按键电源降压芯片LDO下面简单介绍一下这些电路的功能。 ESP32的USB-UART电路部分,核心芯片CP2102。其作用是将USB接口传入的D、D-信号转换为串口信号RX、TX以及…

如何与 MACOM 建立 EDI 连接?

项目背景 MACOM提供高性能射频,微波和毫米波器件,其产品广泛应用于通信,航空航天,国防和工业市场。近年来MACOM在中国地区的业务一直高速增长。 为了提高其供应链的效率和准确性,MACOM使用EDI(电子数据交…

数据挖掘(4.1)--分类和预测

目录 前言 一、分类和预测 分类 预测 二、关于分类和预测的问题 准备分类和预测的数据 评价分类和预测方法 混淆矩阵 评估准确率 参考资料 前言 分类:离散型、分类新数据 预测:连续型、预测未知值 描述属性:连续、离散 类别属性&am…

扬尘天气在家如何防护措施 家里空气中的沙尘怎么处理

扬尘天气在家如何防护措施 家里空气中的沙尘怎么处理 大风起兮尘飞扬 风越强来,天越黄…… 随沙尘而来的还有呼呼呼的大风 刚刚过了一周 “阳光正好,微风不燥”的日子 还没好好感受春花绽放的温柔 沙尘天气就又杀回塔大了 除了吃土 “防护指南…

展心展力 metaapp:基于 DeepRec 的稀疏模型训练实践

作者 metaapp-推荐广告研发部:臧若舟,朱越,司灵通 1 背景 推荐场景大模型在国内的使用很早,早在 10 年前甚至更早,百度已经用上了自研的大规模分布式的 parameter server 系统结合上游自研的 worker 来实现 TB 级别…

【LeetCode】剑指 Offer(27)

目录 题目:剑指 Offer 53 - I. 在排序数组中查找数字 I - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offe…

【机器学习 P19】【实战 P1】 MINST 手写数字识别

MINST 手写数字识别引入数据模型训练模型创建程序模型编译程序模型训练程序模型预测程序完整代码引入数据 MINST数据集是一个经典的手写数字识别数据集,由Yann LeCun等人创建。它包含了来自真实手写数字图片的70000个灰度图像,这些图像是由250个不同的人…

三行Python代码,让数据处理速度提高2到6倍

本文可以教你仅使用 3 行代码,大大加快数据预处理的速度。 Python 是机器学习领域内的首选编程语言,它易于使用,也有很多出色的库来帮助你更快处理数据。但当我们面临大量数据时,一些问题就会显现…… 在默认情况下,…

OpenShift 4 - 使用 virtctl 远程访问 OpenShift Virtualization 的虚拟机

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 在《OpenShift 4 - 用 OpenShift Virtualization 运行容器化虚拟机 (视频)》一文中使用了 OpenShift 控制台直接访问运行在 OpenSh…

SQL中去除重复数据的几种方法,我一次性都告诉你​

使用SQL对数据进行提取和分析时,我们经常会遇到数据重复的场景,需要我们对数据进行去重后分析。以某电商公司的销售报表为例,常见的去重方法我们用到distinct 或者group by 语句, 今天介绍一种新的方法,利用窗口函数对…

MIT 6.S965 韩松课程 05

Lecture 05: Quantization (Part 1) 文章目录Lecture 05: Quantization (Part 1)动机数字的数据类型整数定点数浮点数量化基于 K-Means 的量化 [[Han et al., ICLR 2016]](https://arxiv.org/pdf/1510.00149v5.pdf)线性量化 [[Jacob et al. CVPR 2018]](https://arxiv.org/pdf/…

Makefile项目管理-----在Linux下编译c/c++程序

这里写目录标题起因makefile项目管理一、用途:二、 makefile的基础规则1.多文件联合编译2. makefile检测原理3. ALL来指定终极目标三、 makefile的两个函数和clean四、 makefile中的三个自动变量五、模式规则六、 静态模式规则七、 扩展1. 扩展1 伪目标2. 扩展2 可添…

在 Python 中检查字符串是否为 ASCII

使用 str.isascii() 方法检查字符串是否为 ASCII,例如 if my_str.isascii():。 如果字符串为空或字符串中的所有字符都是 ASCII,则 str.isascii() 方法返回 True,否则返回 False。 my_str www.jiyik.comif my_str.isascii():# &#x1f447…

网络安全工程师做什么?

​ 网络安全很复杂。数字化转型、远程工作和不断变化的威胁形势需要不同的工具和不同的技能组合。 系统必须到位以保护端点、身份和无边界网络边界。负责处理这种复杂安全基础设施的工作角色是网络安全工程师。 简而言之,网络安全工程师是负责设计和实施组织安全系…

基于TF-IDF+KMeans聚类算法构建中文文本分类模型(附案例实战)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

UHD安装教程

UHD Universal Hardware Driver,即USRP驱动。 UHD,Windows平台安装教程 uhd驱动安装 http://files.ettus.com/binaries/misc/erllc_uhd_winusb_driver.zip 安装LibUSBx http://files.ettus.com/binaries/uhd/latest_release 下载默认C盘 环境配置 将…

Android FrameWork 知识点与面试题整合~

1.如何对 Android 应用进行性能分析 android 性能主要之响应速度 和UI刷新速度。 首先从函数的耗时来说,有一个工具TraceView 这是androidsdk自带的工作,用于测量函数耗时的。 UI布局的分析,可以有2块,一块就是Hierarchy Viewe…

面试-Sqrt(x)

题目 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 思路 二分查…

项目管理:项目进度难以把控,项目经理应该怎么办?

项目管理中,对进度的管理也是保障整个项目顺利完成的重要条件。项目进度难以把控,项目常常延期,项目经理怎么办?如何跟进整个项目的进度? 对于如何做好项目进度管理,有几点建议,希望能对大家有…