MySQL——复合查询
目录
一.基本查询回顾
二. 多表查询
三.自连接
四.子查询
1.单行子查询
2.多行子查询
3.多列子查询
4.在from子句中使用子查询
5.合并查询

一.基本查询回顾
准备数据库:


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


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

使用年薪进行降序排序:

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

显示工资高于平均工资的员工信息
显示每个部门的平均工资和最高工资 :

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

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

二. 多表查询
实际开发中往往数据来自不同的表,所以需要多表查询。本节我们用一个简单的公司管理系统,有三张表EMP,DEPT,SALGRADE来演示如何进行多表查询。
显示雇员名、雇员工资以及所在部门的名字因为上面的数据来自EMP和DEPT表,因此要联合查询:
例如:
select * from emp,dept;


这种将多个表的数据进行组和穷举,我们称为笛卡尔积。
但是我们发现表里面有很多不合法的数据,所以我们需要将数据筛选出合法的数据。
其实我们只要emp表中的deptno = dept表中的deptno字段的记录:
select * from emp,dept where emp.deptno=dept.deptno;

显示部门号为10的部门名,员工名和工资:
select dname,ename,sal from emp,dept where emp.deptno=dept.deptno and emp.deptno=10;

显示各个员工的姓名,工资,及工资级别:
select ename,sal,losal,hisal,grade from emp,salgrade where sal between losal and hisal;

三.自连接
自连接是指在同一张表连接查询.
案例:
显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号--empno)
子查询 :
select empno,ename from emp where emp.empno=(select mgr from emp where ename = 'FORD');

使用多表查询(自查询):
select t1.ename,t2.empno from emp t1,emp t2 where t1.ename='FORD' and t1.mgr=t2.empno ;

四.子查询
子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询.
1.单行子查询
显示SMITH同一部门的员工:

2.多行子查询
返回多行记录的子查询:
in关键字
例如 a in { b },将a在b中筛选出来。
查询和10号部门的工作岗位相同的雇员的名字,工岗位,资,部门号,但是不包含10自己的
select ename,job,sal,deptno from emp where job in (select job from emp where deptno=10) and deptno <> 10;

all关键字
all{集合},表示某一个集合中的全部元素。
显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号:
select ename,sal,deptno from emp where sal > all(select sal from emp where deptno=30);

any关键字
any{集合} 集合中的任意一个。
显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工):
select ename,sal,deptno from emp where sal > any(select sal from emp where deptno=30);

3.多列子查询
单行子查询是指子查询只返回单列,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句。
案例:查询和SMITH的部门和岗位完全相同的所有雇员,不含SMITH本人

4.在from子句中使用子查询
子查询语句出现在from子句中。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。
案例:显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资
select ename,deptno,sal,tmp.myavg from emp,(select avg(sal) myavg,deptno dt from emp group by deptno) tmp where sal>myavg and deptno = dt ;

查找每个部门工资最高的人的姓名、工资、部门、最高工资 :
select ename,deptno,sal,maxsal,tmp.dt from emp,(select max(sal) maxsal,deptno dt from emp group by deptno) tmp where deptno=tmp.dt and sal=tmp.maxsal;

显示每个部门的信息(部门名,编号,地址)和人员数量 :
select dept.dname,dept.deptno,dept.loc,total from (select count(*) total ,deptno from emp group by deptno) tmp,dept where tmp.deptno=dept.deptno;

5.合并查询
在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all
union:
该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。
案例:将工资大于2500或职位是MANAGER的人找出来
select empno,ename,job,sal from emp where sal > 2500 union select empno,ename,job,sal from emp where job='MANAGER';

union all:
该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。
select empno,ename,job,sal from emp where sal > 2500 union all select empno,ename,job,sal,sal from emp where job='MANAGER';

相关文章:
MySQL——复合查询
目录 一.基本查询回顾 二. 多表查询 三.自连接 四.子查询 1.单行子查询 2.多行子查询 3.多列子查询 4.在from子句中使用子查询 5.合并查询 一.基本查询回顾 准备数据库: 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为…...
mysql 23-3day 数据库授权(DCL)
目录 创建一个用户 并授权(grant)设置最大连接数客户端链接服务器创建用户删除用户修改用户修改密码root修改自己密码授予 mysql 权限收回权限收回权限刷新一下授权表mydql 知识点确保 mysql 用户为普通用户删除空口令账号安全建议 创建一个用户 并授权&…...
OpenHarmony之内核层解析~
OpenHarmony简介 技术架构 OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件…...
Chatgpt如何共享可以防止封号!
ChatGPT 是一个基于 GPT-3.5/GPT-4 模型的对话系统,它主要用于处理自然语言对话。通过训练模型来模拟人类的语言行为,ChatGPT 可以通过文本交流与用户互动。每个新版本的 GPT 通常都会在模型规模、性能和其他方面有一些改进。在目前免费版GPT-3.5 中&…...
智能优化算法应用:基于社交网络算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于社交网络算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于社交网络算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.社交网络算法4.实验参数设定5.算法结果6.…...
thinkphp+vue+mysql酒店客房管理系统 b1g8z
本系统包括前台界面、用户界面和管理员界面、员工界面。在前台界面里游客和用户可以浏览客房信息、公告信息等,用户可以预定客房,在用户中心界面里,用户可以管理预定信息,管理员负责用户预定的审核以及客房的发布、用户的入住等。…...
nodejs+vue+ElementUi摄影作品图片分享工作室管理系统
第1周 2.21~2.27 查阅资料,学习vscode开发平台和vue框架技术 第2周 2.28~3.6 对软件功能需求进行分析, 软件功能模块划分及软件界面设计 第3周 3.7~3.13 撰写并提交毕业设计开题报告、英文资料翻译 第4周 3.14࿵…...
详解FreeRTOS:专栏总述
目录 1、理论篇 2、基础篇 3、进阶篇 4、高级篇 5、拓展篇 本专栏基于FreeRTOS底层源码介绍了嵌入式实时操作系统的概念,FreeRTOS任务创建、任务调度、任务同步与消息传递,软件定时器、事件通知等知识。 主要分为5方面内容:理论篇、基础…...
在 linux 服务器上安装Redis数据库
先打开我们的Linux服务器 终端执行 安装redis sudo yum install redis然后 他会提示你要占多少磁盘空间 例如 我这里是 1.7 M 没问题就 y 然后回车就可以了 然后 我们这里执行 redis-cli --version这样 就能看到版本了 然后 我们可以根据版本选择启动命令 使用systemctl命…...
阿里云经济型、通用算力型、计算型、通用型、内存型云服务器最新活动报价
阿里云作为国内领先的云计算服务提供商,提供了多种规格的云服务器供用户选择。为了满足不同用户的需求,阿里云推出了经济型、通用算力型、计算型、通用型和内存型等不同类型的云服务器。下面将详细介绍这些云服务器的最新活动报价。 一、阿里云特惠云服…...
回溯算法 典型习题
vector<vector<int>> res; vector<int> path;void dfs() {if (递归终止条件){res.push_back(path);return;}// 递归方向for (xxx) {path.push_back(val);dfs();path.pop_back();} } 1.涉及枚举 2.不确定 for 循环的次数 总结 枚举各种可能的情况。 0.直接…...
14. 从零用Rust编写正反向代理, HTTP文件服务器的实现过程及参数
wmproxy wmproxy是由Rust编写,已实现http/https代理,socks5代理, 反向代理,静态文件服务器,内网穿透,配置热更新等, 后续将实现websocket代理等,同时会将实现过程分享出来ÿ…...
【随笔】MD5加密字符串、文件apache、springframework实现
文章目录 一、引入依赖二、工具代码三、测试代码四、输出结果 一、引入依赖 commons-codec <dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.13</version> </dependency>二…...
java八股 设计模式
企业场景篇-03-设计模式-工厂设计模式-工厂方法模式_哔哩哔哩_bilibili 1.简单工厂模式 新加咖啡类的时候需要在唯一的那个工厂类里加代码,这样就耦合了 2.工厂模式 相对于简单模式的一个工厂生产所有咖啡,这里只定义了一个抽象咖啡工厂,然…...
Docker安装(CentOS)+简单使用
Docker安装(CentOS) 一键卸载旧的 sudo yum remove docker* 一行代码(自动安装) 使用官方安装脚本 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 启动 docker并查看状态 运行镜像 hello-world docker run hello-world 简单使用 使用 docker run …...
Mybatis配置-环境配置(environments)
MyBatis支持配置多个环境,这有助于将您的SQL映射应用于多个数据库,无论出于何种原因。例如,您可能希望为开发、测试和生产环境使用不同的配置。或者,您可能有多个共享相同模式的生产数据库,并且想要在两者上使用相同的…...
Android模拟器的安装和adb连接
一、前置说明 APP 自动化可以使用真机进行测试,也可以使用模拟器来模拟安卓设备。我们可以根据个人喜好安装模拟器,个人推荐安装两款模拟器:网易 MuMu 模拟器、夜神模拟器。 MuMu模拟器可以支持 Android 12 版本,优点是…...
引领创新潮流,武汉灰京文化开创游戏行业新推广标杆
作为市场引领者,武汉灰京文化通过多渠道、多维度的市场推广手段,不仅助力游戏产品广泛传播,更为整个游戏行业树立了新的推广标杆。公司的成功经验为其他游戏发行商提供了有力的借鉴,推动了行业向更创新、更多元的方向发展。 引领…...
HTML5文档
目录 HTML5文档结构1.HTML5页面结构2.HTML5新增结构元素 HTML5新增页面元素1.hgroup标记2.figure标记与figcaption标记3.mark标记与time标记4.details标记与summary标记5.progress标记与meter标记6.input标记与datalist标记 HTML5文档结构 HTML5文档结构同样是由头部和主体两部…...
springboot实现发送邮件开箱即用
springboot实现发送邮件开箱即用 环境依赖包yml配置Service层Controller层测试 环境 jdk17 springboot版本3.2.1 依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><ver…...
如何高效管理LiteDB数据库?LiteDB.Studio实战指南与深度解析
如何高效管理LiteDB数据库?LiteDB.Studio实战指南与深度解析 【免费下载链接】LiteDB.Studio A GUI tool for viewing and editing documents for LiteDB v5 项目地址: https://gitcode.com/gh_mirrors/li/LiteDB.Studio 在现代软件开发中,嵌入式…...
避开这3个坑,你的软考数据库设计题至少多拿10分:从E-R图合并冲突到SQL约束实战
软考数据库设计题避坑指南:从E-R图到SQL约束的实战技巧 每次软考结束,总有一批考生捶胸顿足——"那道数据库设计题明明会做,怎么又丢分了?"作为参加过三次软考阅卷的数据库讲师,我发现90%的失分都集中在几个…...
全面只使用sessionid来验证登录-----客户端只保留sessionid
虽然说sessionid 也是可以伪造的,可以快速发送伪造的sessionid,但是因为sessionid是32位的随机字符串,暴力破解需要几亿年,安全性比user_id1,user_id2 高得多。不过一个有意思的事情是:如果我把user_id1改成 user_id32位随机字符串…...
Ascend CANN平台避坑指南:从算子开发到模型部署的5个关键陷阱
Ascend CANN平台避坑指南:从算子开发到模型部署的5个关键陷阱 在AI加速器领域,昇腾NPU凭借其独特的达芬奇架构和CANN软件栈,正在成为越来越多企业级AI部署的首选方案。然而在实际工程落地过程中,从算子开发到模型部署的完整链路里…...
FLUX.2-klein-base-9b-nvfp4进阶:利用LSTM时序理解优化视频连贯风格转换
FLUX.2-klein-base-9b-nvfp4进阶:利用LSTM时序理解优化视频连贯风格转换 最近在折腾视频风格转换时,发现一个挺让人头疼的问题:用那些单帧处理的模型,出来的视频总是一闪一闪的,风格也忽明忽暗,看着特别不…...
AntimicroX完全指南:游戏手柄映射的艺术与科学
AntimicroX完全指南:游戏手柄映射的艺术与科学 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.com/GitHub_Trend…...
Python中CSV文件处理的常见累积错误及修正方案
在使用 Python 的 csv 模块处理学生成绩数据时,一个极易被忽视却影响结果准确性的典型问题是变量作用域与重用逻辑错误。如原始代码所示,grades [] 被定义在 for row in reader: 循环外部,导致每次迭代都将新学生的成绩追加到同一个列表中—…...
Java微服务在Istio中出现“偶发503 no healthy upstream”?7分钟定位Sidecar健康检查盲区与Liveness Probe冲突真相
第一章:Java微服务在Istio中偶发503问题的现象与影响在基于Istio构建的服务网格环境中,Java微服务(尤其是采用Spring Cloud Kubernetes或原生Spring Boot Istio Sidecar部署模式)频繁出现偶发性HTTP 503 Service Unavailable响应…...
Python打包神器大PK:Nuitka vs PyInstaller,谁才是你的菜?(附实测数据)
Python打包工具深度评测:Nuitka与PyInstaller的终极对决 当开发者需要将Python项目分发给没有Python环境的用户时,打包工具的选择往往成为关键决策。本文将深入分析两大主流工具Nuitka和PyInstaller在多个维度的表现,帮助开发者根据项目需求做…...
FileConverter:重构文件格式转换流程,实现设计师与教育工作者的效率突破
FileConverter:重构文件格式转换流程,实现设计师与教育工作者的效率突破 【免费下载链接】FileConverter File Converter is a very simple tool which allows you to convert and compress files using the context menu in windows explorer. 项目地…...
