数据库作业6——嵌套查询

本文详细介绍了SQL中的嵌套查询,包括不相关子查询和相关子查询,重点讲解了带有in谓词、比较运算符、any/some或all谓词、exists谓词的子查询用法,并通过多个实例解析了它们的执行过程和应用场景。通过这些例子,读者可以更好地理解和掌握嵌套查询的使用技巧。
摘要由CSDN通过智能技术生成

3.4.3 嵌套查询

嵌套查询:将一个查询块嵌套在另一个查询块的where子句或having短句的条件中的查询称为嵌套查询。
分为父查询(外层查询)与子查询(内层查询)
【注】子查询的select语句中不能使用order by 子句
不相关子查询:子查询的查询条件不依赖于父查询(例如 例3.55和例3.56)
相关子查询:子查询的条件依赖于父查询(例如 例3.57)

1. 带有in谓词的子查询

【例3.55】查询与“刘晨”在同一个系学习的学生。

select Sno,Sname,Sdept
from Student
where Sdept in
(select Sdept
from Student
where Sname='刘晨');

它的执行顺序如下列语句:

select Sdept
from Student
where Sname='刘晨';--查询刘晨的系名
select Sno,Sname,Sdept
from Student
where Sdept='CS';--在CS系的学生信息

在这里插入图片描述
此外,这个例题也可以通过自身连接来实现:

select S1.Sno,S1.Sname,S1.Sdept
from Student S1,Student S2
where S1.Sdept=S2.Sdept and S2.Sname='刘晨';

在这里插入图片描述
例3.55的四种解法:

1.嵌套查询
select Sno,Sname,Sdept
from Student
where Sdept in
(select Sdept
from Student
where Sname='刘晨');

2.连接查询
select S1.Sno
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值