数据库(六)-----子查询


1.定义:出现在其他语句中的select语句,称为子查询或内查询
外部的查询语句,称为主查询或外查询
2.分类:
①按子查询出现的位置:
(I)select后面:仅仅支持标量子查询
(II)from后面:支持表子查询
(III)where或having后面:支持标量子查询(单行)、列子查询(多行)、行子查询(较少)(重点)
(IV)exists后面(相关子查询):支持表子查询
②按结果集的行列数不同
(I)标量子查询(结果集只有一行一列)
(II)列子查询(结果集只有一列多行)
(III)行子查询(结果集一行多列)
(IV)表子查询(一般多行多列)

二、位于where或having后面

1.支持标量子查询(单行子查询)
在这里插入图片描述

2.列子查询(多行子查询)
一般搭配着多行操作符使用:
     in、any/some、all
     在这里插入图片描述
在这里插入图片描述
3.行子查询(多列多行)

4.特点:①子查询放在小括号内
     ②子查询一般放在条件的右侧
     ③标量子查询,一般搭配着单行操作符使用:
     

三、select后面

在这里插入图片描述
仅仅支持标量子查询

三、from后面


将子查询结果充当一张表,要求必须起别名

四、exists后面(相关子查询)

exists(完整查询语句)功能为判断真假,结果为1或0
在这里插入图片描述
假设select employee_id from employees里面有数据,则最后结果为1,否则为0

在这里插入图片描述
在这里插入图片描述

五、分页查询

一、语法

select 查询列表
from 表1 别名
join 表2 别名
on 连接条件
where 筛选条件
group by 分组
having 分组后筛选
order by 排序列表
limit 起始条目索引,显示的条数目
执行顺序
1.from
2.join
3.on
4.where
5.group by
6.having
7.select
8.order by
9.limit

二、特点

1.起始条目索引如果不写,默认从0开始

select *from employees limit 0,5;
select *from employees limit 5;
这两句等价,都是查询前五条信息
2.limit后面支持两个参数
参数1:显示起始条目索引
参数2:条目数

六、联合查询


一、概念
当查询结果来自多张表,但多张表之间没有关联,这个时候往往使用联合查询,也称为union查询
二、语法
select 查询列表 from 表1 where 筛选条件
union
select 查询列表 from 表2 where 筛选条件
union自动去重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值