当前位置:网站首页>MySQL 复合查询
MySQL 复合查询
2022-06-30 11:31:00 【小倪同学 -_-】
前面我们讲解的mysql表的查询都是对一张表进行查询,在实际开发中我们常常需要对多张表进行查询。
基本查询回顾
- 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J

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

- 使用年薪进行降序排序

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

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

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

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

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

多表查询
实际开发中往往数据来自不同的表,需要多表查询。
案例一:显示雇员名、雇员工资以及所在部门的名字
因为上面的数据来自EMP和DEPT表,因此要联合查询

其实我们只要emp表中的deptno = dept表中的deptno字段的记录

案例二:显示部门号为10的部门名,员工名和工资

案例三:显示各个员工的姓名,工资,及工资级别

自连接
自连接是指在同一张表连接查询
例:
显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号–empno)
- 使用的子查询

- 使用多表查询(自查询)

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

多行子查询
多行子查询是返回多行记录的子查询
- in关键字
查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的

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

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

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

在from子句中使用子查询
子查询语句出现在from子句中。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。
案例:
- 显示每个高于自己部门平均工资的员工的姓名、部门、工资、平均工资

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

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

- 使用子查询

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

union all
该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。
案例:将工资大于25000或职位是MANAGER的人找出来

边栏推荐
- 重新理解oauth2.0协议进行联合登录
- go-zero微服务实战系列(八、如何处理每秒上万次的下单请求)
- Quel est le rôle du rétroéclairage LED?
- wallys/3 × 3 MIMO 802.11ac Mini PCIe Wi-Fi Module, QCA9880, 2,4GHz / 5GHzDesigned for Enterprise
- R语言ggplot2可视化:gganimate包基于transition_time函数创建动态散点图动画(gif)、使用labs函数为动画图添加动态时间标题(抽取frame_time信息)
- Speech signal processing - Fundamentals (V): Fourier transform
- 10 days to learn how to flutter Day10 flutter play animation and packaging
- It's time for the kotlin coroutine to schedule thread switching to solve the mystery
- Esp32-c3 introductory tutorial IOT part ⑤ - Alibaba cloud Internet of things platform espaliyun RGB LED practical mass production solution
- Summer vacation study record
猜你喜欢

There are so many kinds of coupons. First distinguish them clearly and then collect the wool!

Set up your own website (13)

国内首批!阿里云云原生数据湖产品通过信通院评测认证

“新数科技”完成数千万元A+轮融资,造一体化智能数据库云管理平台

一瓶水引发的“战争”

Esp32-c3 introductory tutorial question ⑨ - core 0 panic 'ed (load access fault) Exception was unhandled. vfprintf. c:1528

Boost study: boost log

wallys/600VX – 2×2 MIMO 802.11ac Mini PCIe Wi-Fi Module, Dual Band, 2,4GHz / 5GHz QCA 9880

线下门店为什么要做新零售?

wallys/600VX – 2 × 2 MIMO 802.11ac Mini PCIe Wi-Fi Module, Dual Band, 2,4GHz / 5GHz QCA 9880
随机推荐
How to 'gracefully' avoid MySQL login prompt information in scripts
dplyr 中的filter报错:Can‘t transform a data frame with duplicate names
wallys/IPQ8074a/2x(4 × 4 or 8 × 8) 11AX MU-MIMO DUAL CONCURRENT EMBEDDEDBOARD
R语言ggplot2可视化:使用ggplot2可视化散点图、使用scale_x_log10函数配置X轴的数值范围为对数坐标
Multiparty Cardinality Testing for Threshold Private Set-2021:解读
Automatic database growth
一个悄然崛起的国产软件,低调又强大!
基于视觉的机器人抓取:从物体定位、物体姿态估计到平行抓取器抓取估计
Alibaba cloud lifeifei: China's cloud database has taken the lead in many mainstream technological innovations abroad
CVPR 2022 | greatly reduce the manual annotation required for zero sample learning. Mapu and Beiyou proposed category semantic embedding rich in visual information
Dameng data rushes to the scientific innovation board, or becomes the "first share of domestic database" in the A-share market
QT embeds the sub QT program window into the current program
数据库 自动增长
"New digital technology" completed tens of millions of yuan of a + round financing and built an integrated intelligent database cloud management platform
[applet practice series] Introduction to the registration life cycle of the applet framework page
Alibaba cloud database represented by polardb ranks first in the world
“\“id\“ contains an invalid value“
Customize an annotation to get a link to the database
Boost研究:Boost Log
How to analyze native crash through GDB