【MySQL】子查询、合并查询、表的连接

目录

一、子查询

1、单行子查询

显示SMITH同一部门的员工信息

2、多行子查询

in关键字

查询和10号部门的工作岗位相同的雇员的名字、岗位、工资、部门号,但是筛选出的雇员的部门不能有10号部门

all关键字 

查询工资比30号部门中所有雇员工资高的雇员的姓名、工资、部门号

any关键字

显示工资比30部门中任意雇员工资高的雇员的姓名、工资、部门号,可以包含部门号是30的雇员

3、多列子查询

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

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

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

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

二、合并查询

union

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

union all

三、表的连接

内连接

显示SMIATH的名字和部门名称

外连接

左外连接

查询所有学生的成绩,如果这个学生没有成绩,也要将这个学生的个人信息显示出来

 右外连接

对stu表和exam表联合查询,把所有成绩都显示出来,即使这个成绩没有匹配的学生也要显示出来

显示部门名称和这些部门的雇员信息,同时列出没有雇员的部门

一、子查询

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

1、单行子查询

返回一行记录的子查询

显示SMITH同一部门的员工信息

select * from emp where (select deptno from emp where ename<=>'SMITH');

2、多行子查询

返回多行记录的子查询

in关键字

查询和10号部门的工作岗位相同的雇员的名字、岗位、工资、部门号,但是筛选出的雇员的部门不能有10号部门
select ename,job,sal,deptno from emp where job in(select distinct job from emp where deptno=10) and deptno<>10;

all关键字 

查询工资比30号部门中所有雇员工资高的雇员的姓名、工资、部门号
select ename,sal,deptno from emp where sal > all(select sal from emp where deptno=30);//或者是使用聚合函数
select ename,sal,deptno from emp where sal > (select max(sal) from emp);

any关键字

显示工资比30部门中任意雇员工资高的雇员的姓名、工资、部门号,可以包含部门号是30的雇员
select ename,sal,deptno from emp where sal > any(select sal from emp where deptno<=> 30);

3、多列子查询

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

select * from emp where (deptno,job) = (select deptno,job where ename='SMITH') and ename<>'SMITH';

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

子查询出现的两种场景:1.在where后出现充当筛选筛选条件。2.在from后出现充当临时表(一般是笛卡尔积)。

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

select ename,detpno,sal,a_s from emp,(select avg(sal) a_s,deptno dt from emp group by deptno) tmp where emp.sal>tmp.a_s and emp.deptno=tmp.dt;

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

select ename,sal,emp.deptno,m_s form emp,(select deptno,max(sal) m_s from emp group by deptno) tmp where emp.deptno=tmp.deptno AND sal = m_s;

二、合并查询

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

union

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

将工资大于2500或职位是MANAGER的雇员找出来
select ename,sal,job from emp where sal>2500 union select ename,sal,job from emp where job='MANAGER';

union all

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

三、表的连接

表的连接分为内连接和外连接

内连接

内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询

//基本格式:
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;
显示SMIATH的名字和部门名称
//之前的写法:
select ename,dname from emp,dept where emp.deptno=dept.deptno and ename='SMITH';//使用标准的内连接写法:
select ename,dname form emp inner join dept on emp.deptno=dept.deptno and ename='SMITH';

外连接

左外连接

如果联合查询,左侧的表完全显示我们就说是左外连接

//语法:
select 字段名 form 表1 left join 表2 on 连接条件

 建两张表:

查询所有学生的成绩,如果这个学生没有成绩,也要将这个学生的个人信息显示出来

 右外连接

如果联合查询,右侧的表完全显示我们就说是右外连接

对stu表和exam表联合查询,把所有成绩都显示出来,即使这个成绩没有匹配的学生也要显示出来

显示部门名称和这些部门的雇员信息,同时列出没有雇员的部门
//使用左外连接:
select d.dname,e.* from  dept d left join emp e on d.deptno=e.deptno;

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

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

相关文章

LLM端侧部署系列 | PowerInfer-2助力AI手机端侧部署47B大模型 (论文解读)

引言 简介 PowerInfer-2 概述 神经元感知的运行时推理 多态神经元引擎 内存中的神经元缓存 灵活的神经元加载 Neuron-Cluster-Level Pipeline 生成执行计划 执行 总结 0. 引言 一雨池塘水面平&#xff0c;淡磨明镜照檐楹。东风忽起垂杨舞&#xff0c;更作荷心万点声…

十、敌人锁定

方法&#xff1a;通过寻找最近的敌人&#xff0c;使玩家的面朝向始终朝向敌人&#xff0c;进行攻击 1、代码 在这个方法中使用的是局部变量&#xff0c;作为临时声明和引用 public void SetActorAttackRotation() {Enemys GameObject.FindGameObjectsWithTag("Enemy&qu…

工程机械车辆挖掘机自卸卡车轮式装载机检测数据集VOC+YOLO格式2644张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2644 标注数量(xml文件个数)&#xff1a;2644 标注数量(txt文件个数)&#xff1a;2644 标注…

Vue+NestJS项目实操(图书管理后台)

一、项目搭建 前端基于vben进行二次开发 在Github下载vben框架&#xff0c;搜索vben即可 下载地址&#xff1a;https://github.com/vbenjs/vue-vben-admin 下载完成后&#xff0c;进行安装依赖&#xff0c;使用命令&#xff1a; // 下载依赖 pnpm install// 运行项目 pnpm …

每日一练:地下城游戏

174. 地下城游戏 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔…

基于facefusion的换脸

FaceFusion是一个引人注目的开源项目&#xff0c;它专注于利用深度学习技术实现视频或图片中的面部替换。作为下一代换脸器和增强器&#xff0c;FaceFusion在人脸识别和合成技术方面取得了革命性的突破&#xff0c;为用户提供了前所未有的视觉体验。 安装 安装基础软件 安装…

数据链路层(以太网简介)

一.以太网数据帧结构&#xff1a; 目的地址&#xff0c;源地址&#xff0c;类型这三个被称为帧头&#xff0c;数据则被称为载荷&#xff0c;CRC则被称为帧尾&#xff08;校验和&#xff09; 二.数据帧结构分析 1.目的地址和源地址 i.地址解释 这两个地址指的是mac地址&#x…

国庆游玩计划安排

地点&#xff1a;上海前滩四方城 地点&#xff1a;船长酒吧 地点&#xff1a;上海&#x1f3db;️外滩华尔道夫

httpsok-v1.17.0-SSL通配符证书自动续签

&#x1f525;httpsok-v1.17.0-SSL通配符证书自动续签 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具&#xff0c;基于全新的设计理念&#xff0c;专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业&#xff0c;稳定、安全、可靠。 一行命令&#xff0c;一分钟轻…

HTML基础用法介绍一

VS code 如何快速生成HTML骨架注释是什么&#xff1f;为什么要写注释&#xff1f;注释的标签是什么&#xff1f;标题标签段落标签换行标签与水平线标签 (都是单标签&#xff09;文本格式化标签图片标签超链接标签音频标签视频标签 &#x1f698;正片开始 VS code 如何快速生成…

深度学习每周学习总结J1(ResNet-50算法实战与解析 - 鸟类识别)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 目录 0. 总结1. 设置GPU2. 导入数据及处理部分3. 划分数据集4. 模型构建部分5. 设置超参数&#xff1a;定义损失函数&#xff0c;学习率&a…

STM32+PWM+DMA驱动WS2812 —— 2024年9月24日

一、项目简介 采用STM32f103C8t6单片机&#xff0c;使用HAL库编写。项目中针对初学者驱动WS2812时会遇到的一些问题&#xff0c;给出了解决方案。 二、ws2812驱动原理 WS2812采用单线归零码的通讯方式&#xff0c;即利用高低电平的持续时间来确定0和1。这种通信方式优点是只需…

Vue 学习

vue 核心语法 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Vue 核心语法测试</title> </head><body&…

外包功能测试干了4年,技术退步太明显了。。。。。​

先说一下自己的情况&#xff0c;本科生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了差不多4年的功能测试&#xff0c;今年中秋&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…

信号用wire类型还是reg类型定义

wire类型就是一根线&#xff0c;线有两端&#xff0c;一端发生改变&#xff0c;经过线传递的信号当然也会发生改变&#xff0c;reg类型则不同&#xff0c;可以把reg类型理解为存储数据的寄存器&#xff0c;当满足一定条件时&#xff0c;数值才被激活发生改变。 那么&#xff0…

【AI论文精读1】针对知识密集型NLP任务的检索增强生成(RAG原始论文)

目录 一、简介一句话简介作者、引用数、时间论文地址开源代码地址 二、摘要三、引言四、整体架构&#xff08;用一个例子来阐明&#xff09;场景例子&#xff1a;核心点&#xff1a; 五、方法 &#xff08;架构各部分详解&#xff09;5.1 模型1. RAG-Sequence Model2. RAG-Toke…

【Conda】修复 Anaconda 安装并保留虚拟环境的详细指南

目录 流程图示1. 下载 Anaconda 安装程序2. 重命名现有的 Anaconda 安装目录Windows 操作系统Linux 操作系统 3. 运行新的 Anaconda 安装程序Windows 操作系统Linux 操作系统 4. 同步原环境使用 robocopy 命令&#xff08;Windows&#xff09;使用 rsync 命令&#xff08;Linux…

C++11新特性(基础)【2】

目录 1.范围for循环 2.智能指针 3.STL中一些变化 4.右值引用和移动语义 4.1 左值引用和右值引用 4.2 左值引用与右值引用比较 4.3 右值引用使用场景和意义 4.4 右值引用引用左值及其一些更深入的使用场景分析 4.5 完美转发 1.范围for循环 int main() {int array[10] { 1,2,3,4…

超声波清洗机哪个品牌的最好?爆款超声波清洗机测评大揭秘

面对超声波清洗机的选购疑虑&#xff0c;许多朋友或是担心其效用不实&#xff0c;落入消费陷阱&#xff0c;或是已经遭遇了不尽如人意的产品体验。对此&#xff0c;我分享的经验或许能为你指点迷津&#xff01;基于亲测超过二十几款市面上热门的超声波眼镜清洗机&#xff0c;我…

Rust 做桌面应用这么轻松?Pake 彻底改变你的开发方式

Rust 做桌面应用这么轻松&#xff1f;Pake 彻底改变你的开发方式 网页应用装不下了&#xff1f;别担心&#xff0c;Pake 用 Rust 帮你打包网页&#xff0c;快速搞定桌面应用。比起动不动就 100M 的 Electron 应用&#xff0c;它轻如鸿毛&#xff0c;功能却一点都不少&#xff0…