数据库原理与应用快速入门 课件 4.4 实现嵌套查询_第1页
数据库原理与应用快速入门 课件 4.4 实现嵌套查询_第2页
数据库原理与应用快速入门 课件 4.4 实现嵌套查询_第3页
数据库原理与应用快速入门 课件 4.4 实现嵌套查询_第4页
数据库原理与应用快速入门 课件 4.4 实现嵌套查询_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理与应用快速入门4.1了解SQL4.2实现单表查询4.3实现连接查询第4章

查询数据4.4实现嵌套查询4.5实现集合查询4.6查询综合应用4.4.1带IN谓词的子查询4.4.2带比较运算符的子查询4.4实现嵌套查询4.4.3带ANY/ALL谓词的子查询4.4.4带EXISTS谓词的子查询4.4

实现嵌套查询在SQL中,有一类特殊格式的查询,即将一个Select-From-Where语句(称为一个查询块)嵌套在另一个查询的Where子句或Having短语的条件中,这类查询称为嵌套查询。SELECTstuNameFROMstudentsWHEREstuIdIN(SELECTstuId

FROMsc

WHEREcorId='001');

4.4

实现嵌套查询我们将上层查询块称为父查询,下层查询块称为子查询。嵌套查询的执行方法是由里向外执行,即每个子查询在上一级查询处理之前执行,子查询的结果用于建立父查询的查找条件。SQL语言允许多层嵌套,即子查询块还可以嵌套其他子查询块。需要注意的是,子查询的SELECT语句中不能使用ORDERBY子句,ORDERBY子句只能对最终查询结果排序。嵌套查询采用多个简单查询块构成复杂的查询,查询代码结构清晰,易于学习和使用。其中,父、子查询的连接谓词包括IN谓词、比较运算符、ANY/ALL、EXISTS等

4.4.1带IN谓词的子查询在嵌套查询中,子查询的结果往往是一个集合,所以谓词IN是嵌套查询中最常使用的谓词。

4.4.1带IN谓词的子查询【例4-36】查询选修了“数据结构”课的学生的学号和成绩。

4.4.1带IN谓词的子查询【例4-37】查询与刘晨同一个班的学生的信息。

4.4.2带比较运算符的子查询带比较运算符的子查询指父、子查询之间的连接谓词是=,>,<,>=,<=,!=,<>等比较运算符。

4.4.2带比较运算符的子查询【例4-38】查询students表中出生日期比刘晨晚的学生的信息。

4.4.3带ANY/ALL谓词的子查询带比较运算符的子查询常常和ANY、ALL谓词一起来使用。

表4.10带ANY/ALL谓词的子查询中常用的表达方式谓词说明>Any大于子查询结果中的某个值>All大于子查询结果中的所有值<Any小于子查询结果中的某个值<All小于子查询结果中的所有值>=Any大于等于子查询结果中的某个值>=All大于等于子查询结果中的所有值<=Any小于等于子查询结果中的某个值<=All小于等于子查询结果中的所有值=Any等于子查询结果中的某个值=All等于子查询结果中的所有值(通常没有实际意义)!=Any不等于子查询结果中的某有值!=All不等于子查询结果中的任何一个值4.4.3带ANY/ALL谓词的子查询【例4-39】查询sc表中比科目001的某些成绩高的记录。

4.4.3带ANY/ALL谓词的子查询【例4-39】查询sc表中比科目001的某些成绩高的记录。本例也可以用聚合函数来实现。SELECT*FROMscWHEREscore>(SELECTMIN(score)FROMscWHEREcorId='001')ANDcorId<>'001';

4.4.3带ANY/ALL谓词的子查询【例4-40】查询sc表中比科目001所有成绩都高的记录。

4.4.3带ANY/ALL谓词的子查询【例4-40】查询sc表中比科目001所有成绩都高的记录。本例同样可以用聚合函数实现。代码如下:SELECT*FROMscWHEREscore>(SELECTMAX(score)FROMscWHEREcorId='001')

ANDcorId<>'001';

4.4.3带ANY/ALL谓词的子查询

表4.11ANY/ALL谓词与聚合函数及IN谓词的等价转换关系

=<>!=<<=>>=ANYIN--<MAX<=MAX>MIN>=MINALL--NOTIN<MIN<=MIN>MAX>=MAX4.4.4带EXISTS谓词的子查询有些查询,当查询条件提到“全部”或“如果…就”等字眼时,我们用上面所学的查询难以实现或实现起来较麻烦,而使用带有EXISTS谓词的嵌套查询会更方便。EXIS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论