4.3子查询和联合查询 (课件)《网站数据库应用技术-SQL Server2005》同步教学(机械工业出版社)
2024-03-25
|
36页
|
45人阅读
|
0人下载
普通
内容正文:
4.3子查询和联合查询
01
子查询
子查询
基本子查询语句
子查询类型
记录操作语句中的子查询
子查询规则
学习要点
子查询
基本子查询语句
子查询
Select……
From……
Where……
查询块
Select……
From……
Where(having)
子查询
子查询
子查询类型
使用IN或NOT IN的子查询
使用比较运算符的子查询
使用ANY或ALL的子查询
使用EXISTS的子查询
子查询
子查询类型
使用IN或NOT IN的子查询
指父查询与子查询之间用IN进行联接,判断某个属性列值是否在子查询的结果中
【例4-30】
改进后的【例4-30】
【例4-31】
子查询类型
子查询类型
【例4-30】
查询与“刘晶晶”在同一个班学习的学生
Step1:
确定“刘晶晶”所在班级名
Step2:
查找所有在‘信息021’班学习的学生
In or not in
SELECT S_class
FROM Information
WHERE S_name='刘晶晶'
SELECT S_no, S_name, S_class
FROM Information
WHERE S_class='信息021'
子查询类型
改进后的【例4-30】
In or not in
SELECT S_class
FROM Information
WHERE S_name='刘晶晶'
SELECT S_no, S_name, S_class
FROM Information
step1
step2
WHERE S_class
=
'信息021'
IN
(
)
子查询类型
【例4-31】
查询选修了课程名为“数据库原理与应用”的学生学号和姓名
返回结果如下:
In or not in
SELECT S_no,S_name
FROM Information
WHERE S_no IN
(SELECT S_no FROM Score WHERE C_no IN
(SELECT C_no FROM Course WHERE C_name='数据库原理与应用'))
子查询类型
使用比较运算符的子查询
指父查询与子查询之间用比较运算符进行联接
如果确定内层查询返回的是单值时,可以用
〉、 〈、 =、 〉=、〈=、!=或〈〉等比较运算符
单值情况下使用=
多值情况下使用IN或NOT IN谓词
示例
【例4-30】
【例4-31】
子查询类型
子查询类型
【例4-30】
查询“刘晶晶”所在班级
分析:
一个学生只可能在一个班级学习 ,故本查询班级的结果是一个唯一值
比较运算符
SELECT S_no,S_name,S_class
FROM Information
WHERE S_class =
(SELECT S_class FROM Information WHERE S_name='刘晶晶')
子查询返回一个班级名
子查询类型
【例4-31】
查询选修了课程名为“数据库原理与应用”的学生学号和姓名
比较运算符
SELECT S_no,S_name
FROM Information
WHERE S_no IN
(SELECT S_no FROM Score WHERE C_no =
(SELECT C_no FROM Course WHERE C_name='数据库原理与应用'))
此子查询返回多个学生编号(s_no)
此子查询返回一个课程编号(C_no)
子查询类型
使用ANY或ALL的子查询
使用ANY或ALL谓词时则必须同时使用比较运算符
含义表4-1
【例4-32】
总结:
聚合函数比ALL查询效率高
子查询类型
连词 含义
〉 ANY 大于子查询结果中的某个值
〈 ANY 小于子查询结果中的某个值
〉= ANY 大于等于子查询结果中的某个值
〈= ANY 小于等于子查询结果中的某个值
〈= ANY 小于等于子查询结果中的某个值
= ANY 等于子查询结果中的某个值
!= ANY或〈〉 ANY 不等于子查询结果中的某个值
〉 ALL 大于子查询结果中的所有值
〈 ALL 小于子查询结果中的所有值
〉= ALL 大于等于子查询结果中的所有值
〈= ALL 小于等于子查询结果中的所有值
〈= ALL 小于等于子查询结果中的所有值
= ALL 等于子查询结果中的所有值(通常没有实际意义)
!= ALL或〈〉 ALL 不等于子查询结果中的任何一个值
表4-1 带有ANY和ALL谓词的相关连词
使用Any or All查询
子查询类型
【例4-32】
查询其他班级中比“信息021 ”班任一
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。