MySQL 06 :多表查询

news2024/10/6 15:20:39

MySQL 05 :多表查询

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

加where过滤

老韩分析
1。雇员名,雇员工资来自emp表
2。部门的名字来自dept表
3。 需求对emp和dept查询 ename,sal,dname,deptno
4。 当我们需要指定显示某个表的列是,需要表,
请添加图片描述

说明请添加图片描述

请添加图片描述

请添加图片描述
请添加图片描述

自连接

自连接是指在同一张表的连接查询[将同一张表当做两张表使用]。
1。把同一张表当做两张表使用
2。需要给表取别名
3。列名不明确,可以指定列的别名 列名as 列的别名

给一张表起了一个大名和小名,大名用的一个列,小名用的另一个列

请添加图片描述

mysql表子查询

请添加图片描述

单行子查询

-- 子查询的演示
-- 请思考:如何显示与SMITH同一部门的所有员工?			
SELECT deptno
				FROM emp
				WHERE ename = 'SMITH'
SELECT * 
				FROM emp
				WHERE deptno = (
					SELECT deptno
					FROM emp
					WHERE ename = 'SMITH'
				)

多行子查询

– 多行子查询
– 课堂练习:如何查询和部门10的工作相同的雇员的
– 名字、岗位、工资、部门号,但是不含10自己的。
请添加图片描述

子查询当做临时表来使用

请添加图片描述

把子查询当做一张临时表可以解决很多很多复杂的查询

-- 查询ecshop中各个类别中,价格最高的商品

-- 查询商品表
-- 先得到 各个类别中,价格最高的商品 max + group by cat id
SELECT cat_id, MAX(shop_price) AS max_price
					FROM ecs_goods
					GROUP BY cat_id
SELECT goods_id, temp.cat_id, goods_name, shop_price
					FROM (
						SELECT cat_id, MAX(shop_price) AS max_price
						FROM ecs_goods
						GROUP BY cat_id	
					) temp, ecs_goods
					WHERE temp.cat_id = ecs_goods.cat_id 
					AND temp.max_price = ecs_goods.shop_price

在多行子查询中 all 和 any 的使用

请思考:显示工资比部门30的所有员工的工资高的员工的姓名、工 资和部门号

请添加图片描述

-- 请思考:显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号
-- 1、首先算出部门号=30 中的最高工资
SELECT MAX(sal) 
				FROM emp
				WHERE deptno = 30
-- 2、然后找出高于这个工资的人
   -- (1)all方法
SELECT ename, sal, deptno
				FROM emp
				WHERE sal > all (
					SELECT sal
					FROM emp
					WHERE deptno = 30
				)
	 -- (2)MAX方法				
SELECT ename, sal, deptno
				FROM emp
				WHERE sal > (
					SELECT MAX(sal)
					FROM emp
					WHERE deptno = 30
				)					

请思考:如何显示工资比部门30的其中一个员工的工资高的员工的姓名、工资和部门号
-- 请思考:显示工资比部门30的任一员工的工资高的员工的姓名、工 资和部门号			
     -- (1)any方法
SELECT ename, sal, deptno
				FROM emp
				WHERE sal > ANY (
					SELECT sal
					FROM emp
					WHERE deptno = 30
				)			
			-- (2)MIN方法
SELECT ename, sal, deptno
				FROM emp
				WHERE sal > (
					SELECT MIN(sal)
					FROM emp
					WHERE deptno = 30
				)		

多列子查询 manycolumn.sql

![请添加图片描述](https://img-blog.csdnimg.cn/5afd01ef635c456aa825f068e3654e47.png请添加图片描述

1、查询出smith的信息
请添加图片描述

2、将上边的查询作为子查询来使用,并且使用多列子查询的语法来进行匹配
请添加图片描述

课后练习

请添加图片描述

子查询练习题

1、请思考:查找每个部门工资高于本部门平均工资的人的资料 – 这里要用到数据查询的小技巧,把一个子查询当作一个临时表使用

1、先算出每个部门的平均工资

请添加图片描述

2、将查询1当做子查询,和emp表进行多表查询请添加图片描述

2、请思考:查找每个部门工资最高的人的详细资料

请添加图片描述

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

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

相关文章

视频的特效效果是怎么加的?可以批量添加吗

经常逛自媒体平台的小伙伴不难发现,要想原创的短视频更有创造性,内容更丰富,给视频添加特效效果算是比较常用的一个方法了。今天小编要分享的可不只是单一地给视频添加特效这么简单,我要给大家分享如何才能快速地批量给视频素材添…

Linux 学习记录46(QT篇)

Linux 学习记录46(QT篇) 本文目录 Linux 学习记录46(QT篇)一、建立QT项目工程二、Assistant帮助文档的使用三、自动生成的文件介绍1. tempprj.pro2. mainwindow.h3. mainwindow.cpp4. main.cpp5. mainwindow.ui 四、常用类的介绍1. 信息调试类(1. qDebug(2. 输出当前界面尺寸(3…

stm32(DMA)

DMA介绍 什么是DMA? 令人头秃的描述: DMA(Direct Memory Access,直接存储器访问) 提供在外设与内存、存储器和存储器、外设 与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU,在这…

解决Anaconda第三方库下载慢

1.打开Anconda Prompt,进入后台 2.执行命令第一个是添加一个清华镜像,第二个设置在 conda 显示通道的 URL。 (1)conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ (2&#xff0…

无线振动传感器之利:实现设备远程监控和管理

在现代工业生产中,设备的远程监控和管理对于提高生产效率和降低成本至关重要。而无线振动传感器作为一种先进的监测技术,能够快速实现设备的远程监控,提供实时的振动数据和设备健康状况,为企业的运维管理带来了许多优势。本文将介…

第十九章:Linux中安装MySQL

第十九章:Linux中安装MySQL 19.1:卸载MySQL 查看是否安装过MySQL # 如果你是用rpm安装,检查一下RPM PACKAGE rpm -qa | grep -i mysql # 检查 mysql service systemctl status mysqld.service # CentOS6和CentOS7在MySQL的使用中的区别 # 防…

React-Native学习,RN的容器Flex-Box布局

justify-content(在RN中属性名称为:justifyContent)在主轴上对齐方式 align-items(在RN中属性名称为:alignItems)在交叉轴上的对齐方式 在React Native中,当没有设置容器的主轴方向时&#xf…

Web-文件上传

需求 新增员工和修改员工的需求会需要上传对应的图像 先实现对应的新增需求吧 !!!RequestBody,因为传参是json格式,还是看对应接口文档!!! controller service mapper xml 对应代码 &…

Jstat命令解析

Jstat命令解析 Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收…

单元测试与端到端测试——主要区别

目录 前言: 什么是单元测试? 单元测试生命周期 单元测试的好处 那么它有什么好处呢? 单元测试示例 单元测试的类型 单元测试工具 什么是端到端测试? 端到端测试 端到端测试的主要好处是什么? 端到端测试示…

Tauri 应用中发送 http 请求

最近基于 Tauri 和 React 开发一个用于 http/https 接口测试的工具 Get Tools,其中使用了 tauri 提供的 fetch API,在开发调试过程中遇到了一些权限和参数问题,在此记录下来。 权限配置 在 tauri 应用中,如果想要使用 http 或 fe…

小白到运维工程师自学之路 第四十九集 (正则表达式之grep)

一、概述 1、正则表达式(Regular Expression,简称为RegExp或Regex)是一种用于描述、匹配和操作文本的字符串模式的表达式。它提供了一种强大而灵活的方式来进行字符串的搜索、替换、提取和验证操作。 2、正则表达式可以用于各种编程语言和应…

SpringBoot第25讲:SpringBoot对TypeHandler的使用

SpringBoot第25讲:SpringBoot对TypeHandler的使用 本文是SpringBoot第25讲,SpringBoot对TypeHandler的使用,TypeHandler就是当SpringBoot 实体类中字段类型和数据库中字段类型不一致时进行使用。 文章目录 SpringBoot第25讲:Sprin…

基环树学习笔记

0.前言 只因环树学习笔只因。 如有错误欢迎指出。 1.基本概念 这名字读起来感觉有点矛盾,怎么可能树上面有一个环呢? 我们把它放到百度翻译里面看看。 顾名思义,基环树不是一棵树,而是一颗假树,他的定义是&#…

Acwing.861 二分图的最大匹配(匈牙利算法)

题目 给定一个二分图,其中左半部包含nq个点(编号1n1),右半部包含ng个点(编号1n2),二分图共包含m条边。 数据保证任意—条边的两个端点都不可能在同一部分中。请你求出二分图的最大匹配数。 给定一个二分图G,在G的一个子图M中&…

软件测试基础认知

日升时奋斗,日落时自省 目录 1、测试需求 2、测试用例 3、软件测试BUG 4、开发模型 4.1、软件的生命周期 4.2、瀑布模型(waterFall Model) 4.3、螺旋模型 4.4、 增量模型 4.4.1、增量开发 4.4.2、迭代开发 4.5、敏捷开发&#xf…

【PDFBox】PDFBox操作PDF文档之创建PDF文档、加载PDF文档、添加空白页面、删除页面、获取总页数、添加文本内容、PDFBox坐标系

这篇文章,主要介绍PDFBox操作PDF文档之创建PDF文档、加载PDF文档、添加空白页面、删除页面、获取总页数、添加文本内容、PDFBox坐标系。 目录 一、PDFBox组件 1.1、什么是PDFBox 1.2、创建PDF文档 1.3、加载PDF文档 1.4、添加空白页面 1.5、删除某个页面 1.6…

三分钟了解 SpringBoot 的启动流程

一、前言 背景:最近有位开发同学说面试被问到Spring Boot 的启动流程,以及被问到Spring Boot 的嵌入式Web容器是什么时候加载的。如何加载的。是怎么无缝切换的。 这些问题,其实回答起来也是比较复杂的。我们今天就从 SpringApplication.ru…

3D设计建模软件The Foundry Modo 16对Mac和Windows的系统要求

Foundry MODO是一款功能强大的三维建模、动画和渲染软件。它为艺术家和设计师提供了一套全面的工具,可以用来创建令人惊叹的视觉效果。无论是制作电影、电视节目、游戏还是其他数字媒体内容,MODO都可以满足您的需求。 MODO具有直观的用户界面&#xff0…

redis主从配置

从redis配置:redis6386.conf include /data/redis/redis6380.conf #主redis配置文件路径(这里是引用主配置文件里的配置在修改从配置) daemonize yes #在后台启动 protected-mode no #加密保护关闭 bind 192.168.3.*** requirepas…