0
点赞
收藏
分享

微信扫一扫

nodejs+vue校园招聘求职系统b9475

_阿瑶 2024-01-18 阅读 11

目录

🚀联合查询

🚀子查询

🚀标量子查询

🚀列子查询

🚀行子查询

🚀​​​​​​表子查询


🚀联合查询

union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集

主要代码:

SELECT 字段列表	FROM	表 A ...

UNION [ ALL ]

SELECT 字段列表  FROM	表B	;

案例:将薪资低于 5000 的员工 , 和 年龄大于 50 岁的员工全部查询出来.

select * from empcp where salary < 5000

union all

select * from empcp where age > 50; --联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。
 

执行:

第一部分

第二部分

联合(即要薪资低于5000的员工,又要年龄大于50的员工,那么就意味着这两条数据要合并,关键字union all

我们发现union all查询出来的结果,有一个员工k是重复的,k的薪资低于5000,年龄又大于50,所以查询了两次,数据直接合并,仅仅进行简单的合并,并未去重。

select * from empcp where salary < 5000

union

select * from empcp where age > 50;

执行:

我们发现union联合查询,会对查询出来的结果进行去重处理。

🚀子查询

SQL语句中嵌套的SELECT语句,称为嵌套查询,又称子查询。

SELECT * FROM	t1	WHERE column1 = ( SELECT column1 FROM t2 ); 

根据子查询结果不同,可分为:

1.标量子查询(子查询结果为单个值)

2.列子查询(子查询结果为一列)

3.行子查询(子查询结果为一行)

4.表子查询(子查询结果为多行多列)

根据子查询位置,可分为:

1.WHERE之后

2.FROM之后

3.SELECT之后

🚀标量子查询

子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询称为标量子查询。  常用的操作符:= <>  >    >= <  <=

案例:

查询 "销售部" 的所有员工信息

执行:

执行:

查询在 "e"这个员工 入职之后的员工信息

执行:

执行:

🚀列子查询

子查询返回的结果是一列(可以是多行),这种子查询称为列子查询

常用的操作符:IN 、NOT IN ANY SOME ALL

操作符

描述

IN

在指定的集合范围之内,多选一

NOT IN

不在指定的集合范围之内

ANY

子查询返回列表中,有任意一个满足即可

SOME

与ANY等同,使用SOME的地方都可以使用ANY

ALL

子查询返回列表的所有值都必须满足

案例:

查询 "销售部" 和 "市场部" 的所有员工信息

执行:

执行:

查询比 财务部 所有人工资都高的员工信息

执行:

执行:

查询比 研发部 其中任意一人工资高的员工信息

执行:

执行:

🚀行子查询

子查询返回的结果是一行(可以是多列),这种子查询称为行子查询。

常用的操作符:= 、<> 、IN 、NOT IN

案例:

查询与 "b" 的薪资及直属领导相同的员工信息 ;

执行:

执行:

🚀​​​​​​表子查询

子查询返回的结果是多行多列,这种子查询称为表子查询。(子查询查询返回的结果就类似于一张表)

常用的操作符:IN

表子查询经常在from之后,把表子查询返回的结果作为一张临时表,再和其他表联查操作

案例:1.查询与 "k" , "p" 的职位和薪资相同的员工信息

执行:

执行:

查询入职日期是 "2006-01-01" 之后的员工信息 , 及其部门信息

执行:

执行:


总结:本篇博客到这里就结束了,希望能帮到你,谢谢你这么好看还来看我      

举报

相关推荐

0 条评论