7.MySQL复合查询

个人主页:Lei宝啊 

愿所有美好如期而遇


目录

复合查询

基本查询回顾

多表查询

自连接

子查询

单行子查询

多行子查询

多列子查询

在from子句中使用子查询

合并查询

union

union all

实战OJ


复合查询

前面我们讲解的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够

基本查询回顾

回顾我们建的表

以及三张表内的数据

  

查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J

按照部门号升序而雇员的工资降序排序

使用年薪进行降序排序

显示工资最高的员工的名字和工作岗位

显示工资高于平均工资的员工信息

显示每个部门的平均工资和最高工资

显示平均工资低于2000的部门号和它的平均工资

显示每种岗位的雇员总数,平均工资

多表查询

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

显示雇员名、雇员工资以及所在部门的名字

(因为上面的数据来自EMP和DEPT表,因此要联合查询)

显示部门号为10的部门名,员工名和工资

显示各个员工的姓名,工资,及工资级别

 

自连接

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

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

使用的子查询

使用多表查询(自查询)

子查询

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

单行子查询

返回一行记录的子查询

显示SMITH同一部门的员工

多行子查询

返回多行记录的子查询

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

all关键字;显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号

any关键字;显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门
的员工)

 

多列子查询

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

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

在from子句中使用子查询

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

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

先找出各个部门的平均工资,将其与emp表做笛卡尔积后,通过工资和部门条件筛选出来。

select ename,emp.deptno,sal,avgsal

from emp,(select deptno,avg(sal) avgsal from emp group by deptno)

where emp.deptno=avg.deptno

and sal>avgsal;

也许你会有疑问,avgsal不是求平均值吗,前面三个数据没有分组,为什么能够做聚合?首先,我们在from那里就已经做出了avgsal的表,而且已经拼接。

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

select ename,sal,emp.deptno,m 

from emp,(select deptno,max(sal) m from emp group by deptno) max

where emp.deptno=max.deptno

and sal=m;

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

子查询

select dept.dname,emp.deptno,dept.loc,count

from (select deptno, count(*) count from emp group by deptno) emp,dept

where emp.deptno=depto;

多表查询 

select dept.dname,dept.deptno,dept.loc,count(*)

from emp,dept

where emp.deptno=dept.deptno

group by dname,loc,dept.deptno;

合并查询

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

union

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

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

union all

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

实战OJ

查找所有员工入职时候的薪水情况_牛客题霸_牛客网 (nowcoder.com)

select emp.emp_no,sal.salary from employees emp,salaries sal

where emp.emp_no=sal.emp_no and emp.hire_date=sal.from_date

order by emp.emp_no desc;

获取所有非manager的员工emp_no_牛客题霸_牛客网 (nowcoder.com)

select emp_no from employees

where emp_no not in (select emp_no from dept_manager);

获取所有员工当前的manager_牛客题霸_牛客网 (nowcoder.com) 

select emp.emp_no,man.emp_no manager from dept_emp emp,dept_manager man

where emp.dept_no=man.dept_no

and emp.emp_no<>man.emp_no;

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

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

相关文章

低代码助力企业数字化升级

随着数字化转型的深入&#xff0c;越来越多的企业开始寻求低代码和无代码解决方案&#xff0c;以满足对应用程序的更快交付和高度定制自动化工作流的日益增长的需求。 根据Gartner的数据&#xff0c;全球低代码和无代码应用平台的市场规模预计在2023年将增长25%至100亿美元&…

IP地址在网络安全中的关键作用

IP地址&#xff08;Internet Protocol Address&#xff09;是互联网世界中的重要标识符&#xff0c;它在网络安全领域发挥着至关重要的作用。这些地址不仅帮助设备在网络上找到彼此&#xff0c;还在多个方面有助于维护网络的完整性、机密性和可用性。本文将探讨IP地址在网络安全…

Java后端开发——实现登录验证程序

一、实现一个简单登录验证程序 实现一个简单的用户登录验证程序&#xff0c;如果用户名是 abc &#xff0c;密码是 123&#xff0c;则显示欢迎用户的信息&#xff0c;否则显示“用户名或密码不正确”。 【分析】 该案例采用 JSP 页面只完成提交信息和验证结果的显示&#xff…

做外贸为何离不开WhatsApp?一文解封、养号、引流、促单全攻略!

WhatsApp在国际贸易中的地位无法忽视。它是一种即时通讯工具&#xff0c;也是外贸从业者的得力助手。但同时&#xff0c;使用WhatsApp也伴随着一些问题&#xff0c;如账号被封、如何养号、引流和促单。这篇文章将为你详细解答这些问题&#xff0c;让你更好地利用WhatsApp&#…

Go语言用Resty库编写的音频爬虫代码

以下是一个使用Resty库的Go语言下载器程序&#xff0c;用于从facebook下载音频。此程序使用了duoip/get_proxy的代码。 package mainimport ("fmt""github.com/john-nguyen09/resty""io/ioutil""net/http" )func main() {// 设置爬虫i…

跨境出口亚马逊美国和加拿大市场水基灭火器UL测试报告审核解析

水基灭火器&#xff08;Foam extinguisher&#xff09;&#xff0c;为绿色外观的灭火器&#xff0c;其灭火器机理为物理性灭火器原理&#xff0c;其主要成分包括碳氢表面活性剂、氟碳表面活性剂、阻燃剂和助剂等。水基灭火器出口需办理UL测试报告。 消防及其他安全用品 本政策…

vue中替换全局字体

一、背景 产品说项目要拿去展会展示&#xff0c;但现在项目字体是微软雅黑&#xff0c;不支持商用&#xff0c;需要全局替换思源字体。 二、下载字体 推荐一个网址&#xff0c;好用 字体天下&#xff0c;点击跳转 下载好的文件如下&#xff1a; 三、引入字体 1、在项目…

Maven学习

Maven介绍 Maven是Apache的一个开源项目&#xff0c;主要服务于基于Java平台的项目构建&#xff0c;依赖管理和项目信息管理。 Maven可以让团队能够更科学的构建项目&#xff0c;我们可以用配置文件的方式&#xff0c;对项目的名称、描述、项目版本号、项目依赖等信息进行描述…

如何在Postman中使用静态HTTP

首先&#xff0c;打开 Postman 软件。在 Postman 的菜单栏中&#xff0c;点击 “Preferences”&#xff08;偏好设置&#xff09;。 亲身经验&#xff1a;我自己尝试了这个方法&#xff0c;发现它非常适用于需要使用HTTP的场景。 数据和引证&#xff1a;根据 Postman 官方文档…

【tio-websocket】9、服务配置与维护—TioConfig

场景 我们在写 TCP Server 时,都会先选好一个端口以监听客户端连接,再创建N组线程池来执行相关的任务,譬如发送消息、解码数据包、处理数据包等任务,还要维护客户端连接的各种数据,为了和业务互动,还要把这些客户端连接和各种业务数据绑定起来,譬如把某个客户端绑定到一…

杀毒软件的原理

近几年杀毒软件泛滥&#xff0c;很多人不知道该如何选择合适的杀毒软件&#xff0c;也许杀毒软件并非是必需的&#xff0c;真心觉得杀毒软件没啥用&#xff0c;而且运行起来还严重影响系统性能&#xff0c;但是很多小白电脑都会用杀毒软件&#xff0c;他们怕&#xff0c;因为不…

系统升级数量超微软预期,Win10/11盗版激活被封杀

声明&#xff1a;本文提供的命令、工具来自第三方网站&#xff0c;仅供学习交流使用&#xff0c;下载后24小时内删除&#xff0c;一切非法使用责任由使用者自行承担。 上月底 Win11 迎来了 Moment 4 功能更新&#xff0c;任务栏取消合并居然真的回归了。 巨硬终于妥协&#x…

C#使用mysql-connector-net驱动连接mariadb报错

给树莓派用最新的官方OS重刷了一下&#xff0c;并且用apt install mariadb-server装上“mysql”作为我的测试服务器。然后神奇的事情发生了&#xff0c;之前用得好好的程序突然就报错了&#xff0c;经过排查&#xff0c;发现在连接数据库的Open阶段就报错了。写了个最单纯的Con…

xcode Simulator 手动安装

xcode Simulator 手动安装 参考文档 xcode又又又升级了&#xff0c;升级完成之后不下载最新的 iOS 17 Simulator就不能编译运行了&#xff0c;只能静静的等他下载。但是离谱的是这个居然没有断点续下&#xff0c;每次都要重新下载&#xff0c;眼睁睁的看着下载了4个G然后断掉…

数字取证对有效企业事件响应的重要性

数字取证对有效企业事件响应的重要性 事件响应功能的现代化已成为企业安全的关键焦点&#xff0c;数字取证调查的支持是事件响应的重要组成部分&#xff0c;并就如何优化交互提供了指导&#xff0c;尤其是在CISO 领导的团队选择商业平台和工具的情况下。 企业事件响应简介 现代…

持续集成部署-k8s-服务发现-Service:Service、Endpoint、Pod之间的关系与原理

服务发现-Service:Service、Endpoint、Pod之间的关系与原理 1. 关系简介2. 网络访问1. 关系简介 在 Kubernetes 中,Service 是一种抽象的逻辑概念,用于将一组具有相同功能的 Pod 组合成一个逻辑服务。Service 提供了一种稳定的 IP 地址和 DNS 域名,供客户端访问这个逻辑服…

Redis缓存(缓存预热,缓存穿透,缓存雪崩,缓存击穿)

目录 一, 缓存 1, 什么是缓存 2, 什么是热点数据(热词) 3, 缓存更新策略 3.1 定期生成 3.2 实时生成 二, Redis缓存可能出现的问题 1, 缓存预热 1.1 什么是缓存预热 1.2 缓存预热的过程 2, 缓存穿透 2.1 什么是缓存穿透 2.2 缓存穿透产生的原因 2.3 缓存穿透的解…

超市商品管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL

项目下载地址 目录 项目下载地址 一、摘要1.1 简介1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 超市区域模块2.3 超市货架模块2.4 商品类型模块2.5 商品档案模块 三、系统设计3.1 用例图3.2 时序图3.3 类图3.4 E-R图 四、系统实现4.1 登录4.2 注册4.3 主页4.4 超市区域管理4…

【springcloud】Feign的性能优化和最佳实践

Feign的默认实现不支持连接池&#xff0c;换位Apache的HttpClient或者OKHttp连接池 引入依赖即可。 最佳实践 Feign的使用&#xff0c;一般抽取为单独的模块&#xff0c;引入依赖以及相关实体类&#xff0c;配置类等。在使用时引入接口依赖。 在引入依赖时&#xff0c;由于我…

基于MIMO+16QAM系统的VBLAST译码算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ........................................................................ for SNR_dBSNRS…