版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理嵌套查询第一页,共32页。第三章关系数据库标准语言SQL3.1SQL概述3.2数据定义3.3查询3.4数据更新3.5视图第二页,共32页。3.3查询概述单表查询连接查询嵌套查询集合查询小结嵌套查询第三页,共32页。嵌套查询嵌套查询概述嵌套查询分类嵌套查询求解方法引出子查询的谓词第四页,共32页。嵌套查询【例1】查询选修了2号课程的学生的姓名SELECTSname FROMStudent,SCWHERE方法1:复合条件查询Student.Sno=SC.SnoandCno='2'第五页,共32页。嵌套查询【例1】查询选修了2号课程的学生的姓名方法2:换个角度想问题思路:从Student表中查询学生的姓名,这个学生应该是选修了2号课程的学生。思路:从Student表中查询学生的姓名,这个学生应该在选修了2号课程的学生集合里。第六页,共32页。嵌套查询【例1】查询选修了2号课程的学生的姓名方法2:换个角度想问题(SELECTSnoFROMSCWHERECno='2');外层查询/父查询内层查询/子查询SELECTSname FROMStudentWHERESnoIN第七页,共32页。嵌套查询一、嵌套查询概述一个SELECT-FROM-WHERE语句称为一个查询块将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询第八页,共32页。嵌套查询子查询的限制不能使用ORDERBY子句层层嵌套方式反映了SQL语言的结构化有些嵌套查询可以用连接运算替代第九页,共32页。不相关子查询子查询的查询条件不依赖于父查询相关子查询子查询的查询条件依赖于父查询二、嵌套查询分类嵌套查询第十页,共32页。三、嵌套查询求解方法不相关子查询是由里向外逐层处理。即每个子查询在上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。嵌套查询第十一页,共32页。相关子查询首先取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询,若WHERE子句返回值为真,则取此元组放入结果表;然后再取外层表的下一个元组;重复这一过程,直至外层表全部检查完为止。嵌套查询三、嵌套查询求解方法(续)第十二页,共32页。四、引出子查询的谓词带有IN谓词的子查询带有比较运算符的子查询带有ANY或ALL谓词的子查询带有EXISTS谓词的子查询嵌套查询第十三页,共32页。(1)带有IN谓词的子查询(续)【例2】查询选修了课程名为“信息系统”的学生学号和姓名①首先在Course关系中找出“信息系统”的课程号,结果为3号②然后在SC关系中找出选修了3号课程的学生学号③最后在Student关系中取出Sno和Sname(SELECTCnoFROMCourseWHERECname=‘信息系统’));(SELECTSnoFROMSCWHERECnoINSELECTSno,SnameFROMStudentWHERESnoININ可由‘=’代替第十四页,共32页。(2)带有比较运算符的子查询
当能确切知道内层查询返回单值时,可用比较运算符(>,<,=,>=,<=,!=或<>)。与ANY或ALL谓词配合使用某一个全部第十五页,共32页。(3)ANY或ALL谓词的子查询【例3】查询其他系中比信息系任意一个(某一个)学生年龄小的学生姓名和年龄
SELECTSname,SageFROMStudentWHERESage<ANY(SELECTSageFROMStudentWHERESdept='IS')ANDSdept<>'IS';/*注意这是父查询块中的条件*/第十六页,共32页。(3)ANY或ALL谓词的子查询ANY和ALL谓词有时可以用集函数实现ANY与ALL与集函数的对应关系
=
<>或!=<<=>>=ANY
IN
--
<MAX<=MAX>MIN>=MINALL--
NOTIN
<MIN<=MIN>MAX>=MAX
用集函数实现子查询通常比直接用ANY或ALL查询效率要高,因为前者通常能够减少比较次数第十七页,共32页。IN
(SELECTSnoFROMSCWHERECno='2');①SELECTSname FROMStudentWHERESno②SELECTSnameFROMStudentWHEREEXISTS(SELECT*FROMSC/*相关子查询*/WHERESno=Student.SnoANDCno='2');1、什么是嵌套查询2、嵌套查询分类不相关子查询相关子查询3、嵌套查询执行方法嵌套查询①②4、引出子查询的谓词
第十八页,共32页。(4)带有EXISTS谓词的子查询1.EXISTS谓词2.NOTEXISTS谓词3.不同形式的查询间的替换4.☆用EXISTS/NOTEXISTS实现全称量词5.☆用EXISTS/NOTEXISTS实现逻辑蕴函第十九页,共32页。(4)带有EXISTS谓词的子查询1.EXISTS谓词存在量词
带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。若内层查询结果非空,则返回真值若内层查询结果为空,则返回假值由EXISTS引出的子查询,其目标列表达式通常都用*,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义2.NOTEXISTS谓词第二十页,共32页。(4)带有EXISTS谓词的子查询【例1】查询所有选修了2号课程的学生姓名SELECTSnameFROMStudentWHEREEXISTS
(SELECT*FROMSCWHERE思路分析:查询Student中这样的学生姓名,只要在SC表中存在该学生选修1号课程的记录。Sno=Student.SnoAND Cno='1');第二十一页,共32页。(4)带有EXISTS谓词的子查询【例1】查询所有选修了2号课程的学生姓名SELECTSnameFROMStudent,SCWHEREStudent.Sno=SC.SnoANDSC.Cno='1';等值连接实现:第二十二页,共32页。(4)带有EXISTS谓词的子查询SELECTSnameFROMStudentWHERE(SELECT*FROMSCWHERESno=Student.Sno ANDCno='1');连接运算的实现?NOTEXISTS【例4】查询没有选修2号课程的学生姓名思路分析:查询Student中这样的学生姓名,只要在SC表中不存在该学生选修1号课程的记录。第二十三页,共32页。(4)带有EXISTS谓词的子查询SELECTSnameFROMStudent,SCWHEREStudent.Sno=SC.SnoANDSC.Cno<>'1';【例4】查询没有选修2号课程的学生姓名第二十四页,共32页。Student表CSCSMAIS20191819男女女男李勇刘晨王敏张立200215121200215122200215123200515125SdeptSageSsexSnameSnoSC表928588908012323200215121200215121200215121200215122200215122GradeCnoSnoSELECTSnameFROMStudentWHERENOTEXISTS(SELECT*FROMSCWHERESno=Student.Sno ANDCno='1');√结果表Sname刘晨王敏张立第二十五页,共32页。Student表SC表928588908012323200215121200215121200215121200215122200215122GradeCnoSnoSELECTSnameFROMStudent,SCWHEREStudent.Sno=SC.SnoANDSC.Cno<>'1';CSCSMAIS20191819男女女男李勇刘晨王敏张立200215121200215122200215123200515125SdeptSageSsexSnameSno结果表Sname李勇×√×注意:约束的是单个元组第二十六页,共32页。(4)带有EXISTS谓词的子查询3.不同形式的查询间的替换所有带IN谓词、比较运算符、ANY和ALL谓词的子查询都能用带EXISTS谓词的子查询等价替换。一些带EXISTS或NOTEXISTS谓词的子查询不能被其他形式的子查询等价替换第二十七页,共32页。(4)带有EXISTS谓词的子查询4.用EXISTS(
)/NOTEXISTS实现全称量词(
)谓词:P(x1,x2,…,xn)被称为n元谓词。其中P是谓词,代表一个确定的特征或关系(名)。x1,x2,…,xn称为谓词的参量,一般表示个体。Like(I,Music)例如:“我喜欢音乐”第二十八页,共32页。(4)带有EXISTS谓词的子查询4.用EXISTS(
)/NOTEXISTS实现全称量词(
)如果谓词公式P(x)对于所有可能变量x都具有True值,则用(∀x)P(x)表示。对于谓词公式P(x),至少有一个变元X可使P(x)为True值,则用(∃x)P(x)表示。第二十九页,共32页。(4)带有EXISTS谓词的子查询(
x)P≡
(
x(
P))(
x)P:例如:P表示谓词“学生x选修了课程A”不存在这样的学生x,x没有选修课程A
(
x(
P))全部学生都选修了课程A第三十页,共32页。(4)带有EXISTS谓词的子查询【例5】检索全部学生都选修的课程号与课程名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽亳州刘桥中学2026届初三下学期中考适应性月考(八)数学试题含解析
- 袋鼠式护理:不仅仅是保暖
- 医院门诊部绩效考核制度
- 中小学校审计制度
- 审计局走访制度
- 审计人员管理制度
- 大众绩效考核制度
- 审计局控烟监督管理制度
- 保安部绩效考核制度
- 健全医院内部审计制度
- 江苏省交通设施代建合同范本
- 2026年及未来5年中国耐火粘土行业发展运行现状及投资战略规划报告
- T∕CIECCPA 125-2026 温室气体 产品碳足迹量化方法与要求 燃气-蒸汽联合循环发电产品
- 2024版2026春新教科版科学三年级下册教学课件:第一单元 辨别方向 单元小结复习
- 物业管理公司员工招聘条件及流程
- 2025年上海大专自主招生免笔试及答案
- 汽车制造焊接工艺技术规范
- 2025年黑龙江生态工程职业学院单招职业倾向性测试模拟测试卷附答案解析
- 融媒体应聘考试题及答案
- (新版)上海安全员C3考试(重点)题库300题(含答案)
- 老年2型糖尿病合并认知障碍照护方案
评论
0/150
提交评论