MYSQL数据库-复合查询

news2024/12/23 8:07:11

MYSQL数据库-复合查询

  • 零、前言
  • 一、基本查询
  • 二、多表查询
  • 三、自连接
  • 四、子查询
    • 1、单行子查询
    • 2、多行子查询
    • 3、多列子查询
    • 3、在from子句中使用子查询
  • 五、合并查询
    • 1、union
    • 2、union all

零、前言

本章主要讲解学习MYSQL数据库中的复合查询,前面我们讲解的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够

一、基本查询

  • 示例:
  1. 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J
image-20220809230512335
  1. 按照部门号升序而雇员的工资降序排序
image-20220809230542158
  1. 使用年薪进行降序排序
image-20220809230749183
  1. 显示工资最高的员工的名字和工作岗位
image-20220809231104037
  1. 显示工资高于平均工资的员工信息
image-20220809231211597
  1. 显示每个部门的平均工资和最高工资
image-20220809231902445
  1. 显示平均工资低于2000的部门号和它的平均工资
image-20220809232145213
  1. 显示每种岗位的雇员总数,平均工资
image-20220809232612762

二、多表查询

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

  • 示例:
  1. 显示雇员名、雇员工资以及所在部门的名字

因为上面的数据来自EMP和DEPT表,因此要联合查询;其实我们只要emp表中的deptno = dept表中的deptno字段的记录

image-20220809233343854 image-20220809234323381
  1. 显示部门号为10的部门名,员工名和工资
image-20220809234437453
  1. 显示各个员工的姓名,工资,及工资级别
image-20220809234736302

三、自连接

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

  • 示例:显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号–empno)
  1. 使用的子查询:
image-20220813152428494
  1. 使用多表查询(自查询):
-- 使用到表的别名
-- from emp leader, emp worker,给自己的表起别名,因为要先做笛卡尔积,所以别名可以先识别
image-20220813152705626

四、子查询

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

1、单行子查询

返回一行记录的子查询

  • 示例:显示SMITH同一部门的员工
image-20220813153004636

2、多行子查询

返回多行记录的子查询

  • 示例:
  1. in关键字:查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的
image-20220813153608390
  1. all关键字:显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号
image-20220813153904770
  1. any关键字:显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工)
image-20220813154048480

3、多列子查询

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

  • 示例:查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人
image-20220813155134557

3、在from子句中使用子查询

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

  • 示例:
  1. 显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资
image-20220813155850145
  1. 查找每个部门工资最高的人的姓名、工资、部门、最高工资
image-20220813160238096
  1. 显示每个部门的信息(部门名,编号,地址)和人员数量
image-20220813161108672

五、合并查询

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

1、union

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

  • 示例:将工资大于2500或职位是MANAGER的人找出来
image-20220813161430632

2、union all

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

  • 示例:将工资大于25000或职位是MANAGER的人找出来
image-20220813161541328

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

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

相关文章

嵌入式分享合集119

一、传感器的数据处理算法 在传感器使用中,我们常常需要对传感器数据进行各种整理,让应用获得更好的效果,以下介绍几种常用的简单处理方法: 加权平滑:平滑和均衡传感器数据,减小偶然数据突变的影响。 抽取…

502问题怎么排查?

刚工作那会,有一次,上游调用我服务的老哥说,你的服务报"502错误了,快去看看是为什么吧"。 当时那个服务里正好有个调用日志,平时会记录各种200,4xx状态码的信息。于是我跑到服务日志里去搜索了一下502这个数…

【负荷预测】基于贝叶斯网络的考虑不确定性的短期电能负荷预测(Python代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

408 考研《操作系统》第二章第四节:进程同步和进程互斥

文章目录教程1. 进程同步2. 进程互斥3. 总结4. 进程互斥的软件实现方法4.1 单标志法4.2 双标志先检查法4.3 双标志后检查法4.4 Peterson算法4.5 总结5. 进程互斥的硬件实现方法5.1 中断屏蔽方法5.2 TestAndSet指令5.3 Swap指令5.4 总结教程 进程同步和进程互斥 https://www.bi…

【OpenCV学习】第11课:图像金字塔 - 上采样与降采样(高斯金字塔,放大与缩小图像)

仅自学做笔记用,后续有错误会更改 理论 参考文章链接:https://blog.csdn.net/qq_54185421/article/details/124350723 图像金字塔的概念: 从上往下(采样点越来越多):上采样 从下往上(采样点越来越少)&a…

代码随想录刷题|LeetCode 503.下一个更大元素II 42. 接雨水 84.柱状图中最大的矩形

目录 503.下一个更大元素II 思路 下一个更大元素|| 42. 接雨水 思路 双指针法 动态规划 单调栈 接雨水 双指针法 动态规划 单调栈 84.柱状图中最大的矩形 思路 柱状图最大的矩形 动态规划 单调栈 503.下一个更大元素II 题目链接:力扣 思路 与 739. 每日温度 基本相…

STM32 | hex文件、bin文件、axf文件的区别?

已剪辑自: https://mp.weixin.qq.com/s/1EQRooYYpDeKvHpqguik6w 在STM32开发中,经常会碰到hex文件、bin文件与axf文件,这些都是可以烧写到板子里运行的文件。这三个文件有什么区别呢?在这之前,先来一起回顾一下C语言编译的过程&a…

详解c++---模板(初阶)

这里写目录标题为什么会有模板函数模板如何解决类型不同而导致模板无法实例化的问题类的模板为什么会有模板 c语言在面对同一个功能不同的类型的数据时得创建出来多个不同名的函数来依次达到目的&#xff0c;比如说我们下面的代码&#xff1a; #include<stdio.h> int a…

计算机毕业设计ssm+vue基本微信小程序的手机预约维修系统

项目介绍 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势&#xff1a;对于电脑维修预约当然也不能排除在外,随着网络技术的不断成熟,带动了电脑维修预约,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活…

通俗理解数据治理之主数据

1. 定义 1&#xff09;国家标准GB/T 36073-2018 《数据管理能力成熟度评估模型》中对主数据的定义&#xff1a;主数据是组织中需 要跨系统、跨部门进行共享的核心业务实体数据。 2&#xff09;IBM 公司在其有关主 数据管理的红皮书《Master Data Manangement:Rapid Deploymen…

软件测试web自动化测试

今天目标 1、自动化相关概念 2、自动化相关环境搭建 3、元素定位 课程大纲 1.核心重点&#xff08;第二章&#xff09; 2,提高代码质量&#xff0c;自动化水平(第三、四、五、六章) 3.项目实战&#xff08;第七章&#xff09; 4.理论及环境与定位&#xff08;第一章&am…

Linux服务器读写python环境变量

在公司项目开发过程中&#xff0c;代码都是放在服务器中进行运行的&#xff0c;使用本地的idea工具连接到服务器。 如python开发中&#xff0c;将使用pycharm工具连接服务器&#xff0c;如下图所示&#xff1a; 在项目中有线上正式环境、测试环境等&#xff0c;都是用不同环境变…

[附源码]计算机毕业设计计算机相关专业考研资料管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【Keras+计算机视觉+Tensorflow】实现基于YOLO和Deep Sort的目标检测与跟踪实战(附源码和数据集)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一、YOLO目标检测算法 YOLO是端到端的物体检测深度卷积神经网络&#xff0c;YOLO可以一次性预测多个候选框&#xff0c;并直接在输出层回归物体位置区域和区域内物体所属类别&#xff0c;而Faster R-CNN仍然是采用R-CNN那种…

Windows 下Zookeeper 配置参数解读 和查看注册了哪些服务

zookeeper 配置文件解读 本地配置文件奉上: # The number of milliseconds of each tick tickTime2000 # The number of ticks that the initial # synchronization phase can take initLimit10 # The number of ticks that can pass between # sending a request and gett…

图像处理学习笔记-10-图像分割与边缘检测

图像分割的三大类方法&#xff1a;根据区域间灰度不连续搜寻区域之间的边界&#xff0c;在奇异性检测、边缘连接和边界检测介绍&#xff1b;以像素性质的分布进行阈值处理&#xff0c;在阈值处理介绍&#xff1b;直接搜寻区域进行分割&#xff0c;在基于区域的分割中介绍 奇异…

数据库、计算机网络,操作系统刷题笔记8

数据库、计算机网络&#xff0c;操作系统刷题笔记8 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle&…

网站各个功能基本实现

1.前面已经介绍前后端的交互 2.今天实现网站功能的基本实现 也就是查询数据库。 网站类型为展示型网站。 页面如下&#xff1a; 点击政府公告显示&#xff1a; 点击机构设置显示&#xff1a; 后面不一一展示&#xff0c;主要实现六大功能的展示功能。 后续就实现管理员维…

PostgREST的安装部署(Windows和Linux环境)

下载地址&#xff1a;https://github.com/PostgREST/postgrest/releases 官方文档地址&#xff1a;Overview of Role System — PostgREST 9.0.0 documentation Windows 先下载对应系统的安装包&#xff1a; 下载之后解压会得到一个postgrest.exe可执行文件 创建配置文件&a…

解决 Android 开发过程中 出现 Duplicate class(包冲突)

1、现在大部分的项目都是支持 Androidx 的&#xff0c;所以出现 Duplicate 的时候 先把 gradle.properties 文件中添加参数&#xff0c;支持使用AndroidX android.useAndroidXtrue android.enableJetifiertrue 2、有些 *.jar/*.aar 不支持 AndroidX 的时候&#xff0c;将上面…