第3章_关系数据库标准语言_3.ppt_第1页
第3章_关系数据库标准语言_3.ppt_第2页
第3章_关系数据库标准语言_3.ppt_第3页
第3章_关系数据库标准语言_3.ppt_第4页
第3章_关系数据库标准语言_3.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章关系数据库标准语SQL,秋龙县,审查-单表查询,语句格式SELECT ALL|DISTINCT,FROM,where group by having order by ASC | desc;查看-单个表查询,查询仅包含一个表。1、选择表的多个列2、选择表的多个元组3、ORDER BY子句4、聚集函数5、GROUP BY子句、复查连接查询、连接查询:同时包含多个表的查询连接条件或连接谓词:连接两个表的条件通用格式:BETWEEN。AND .连接字段:连接谓词中列的名称连接条件中的每个连接字段类型必须是可比较的,但名称不必相同。查看-连接查询,连接操作嵌套循环方法(NESTED-LOOP)首

2、先在表1中查找第一个元组,然后从开始扫描表2以查找满足连接器的元组,接着将表1中的第一个元组与相应元组合并,从而形成结果表的元组。查找完表2后,在表1中查找第二个元组,然后从开始扫描表2,逐个查找符合连接条件的元组,然后将表1中的第二个元组与相应的元组组合,形成结果表中的元组。处理表1中的所有元组。查看-连接查询、运行连接操作进程、排序合并方法(SORT-MERGE)用于排序表1中的第一个元组(首先按连接属性对表1和表2进行排序)、从头开始扫描表2,然后依次查找满足连接条件的元组。表2中第一个元组大于表1连接字段值通过连接查询、运行连接作业进程、排序合并方法(SORT-MERGE)查找表1的第

3、二个元组,然后从断点顺序扫描表2,查找满足连接条件的元组。在表2中直接遇到大于表1连接字段值的元组时,不再重复对表2的查询,直到处理了表1或表2中的所有元组。查看-连接查询、连接作业运行进程、索引连接按连接字段对表1中的每个元组进行索引(在表2中)。找到后,将表1中的第一个元组与相应元组相结合,以将结果表中的元组、嵌套查询、集合查询、1,2、培训内容、培训目标、培训内容、具有IN谓词的子查询比较运算符的子查询ANY(SOME)或具有ALL谓词的子查询嵌套查询概述称为一个查询块3.6嵌套查询,子查询限制不能使用ORDER BY子句层次嵌套方法。可以使用连接操作替换SQL语言中的部分结构化嵌套查询

4、,解决3.6.1嵌套查询的方法,不相关子查询:子查询中的查询条件不依赖于父查询,而是内外处理。 也就是说,在处理更高级别的查询之前会解析每个子查询,子查询的结果用于设置父查询的查找条件。3.6.1解决嵌套查询的方法,相关子查询:子查询中的查询条件首先获取外部查询中表的第一个元组(基于父查询),然后根据与内部查询相关的属性值处理内部查询。如果WHERE子句返回true值,请重复此过程,方法是将此元组放置在结果表中,然后从外部表中获取下一个元组,直到所有外部表都已解析该查询应分阶段确定具有“柳川”的学科名称select sdept from student where sname=柳川。结果,带有

5、CS,3.6.2 IN谓词的子查询将查找在IS系学习的所有学生。SELECT Sno,Sname,sdept from student where sdept=cs结果是具有3.6.2 IN谓词的子查询,第一阶段查询包含在第二阶段查询的条件中SELECT Sno、Sname、sdept from student where sdept IN(SELECT sdept from stom此查询是不相关的子查询)。具有3.6.2 IN谓词的子查询,示例40祖怀选修课为“信息系统”的学生学号和姓名选择SELECT Sno,Sname最后在Student关系中从FROM Student中取出Sno和S

6、name WHERE Sno IN (SELECT Sno,然后SC与ANY或ALL谓词组合使用,具有比较运算符的3.6.3子查询(例如,假定学生只能从一个部门学习,并且必须属于一个系统),您可以使用=代替in: select SnO,Sname,sdept from studes,比较运算符为3.6.3SELECT Sno,Sname,sdept from student where(SELECT sdept from student where Sname,具有3.6.3比较运算符的子查询,示例41查找每个学生超过选修课平均成绩的课程编号。SELECT Sno,cno from sc x

7、where grade=(SELECT avg(grade)from sc y where y . Sno=x . Sno);相关子查询,具有3.6.3比较运算符的子查询,可能的执行过程:1。从外部查询中删除SC的元组X,然后将元组X的Sno值(200215121)传递到内部查询。选择avg(grade)from sc y where y . SnO=200215121;2.执行内部查询以获取88(近似值)值而不是内部祖怀,从而获得外部查询。SELECT Sno,Cno FROM SC x WHERE Grade=88;具有3.6.3比较运算符的子查询,3 .运行此查询,然后选择(200215

8、121,1) (200215121,3) 4。外部查询将删除以下元组并重复上述步骤1到3,直到处理完所有外部SC元组。结果为: (200215121,1) (200215121,3) (200215122,2),3.6.4 ANY(SOME)3.6.4是具有ANY(SOME)或ALL谓词的子查询。例如,42查询比计算机科学中的一个学生年龄小的其他学科的学生名称和年龄SELECT Sname,sage from student/*父查询块中的条件*/,具有3.6.4 ANY(SOME)或ALL谓词的子查询,结果:运行过程:1在运行此查询时,RDBMS首先处理子查询,以查找CS系统中所有学生的年龄

9、,然后构造一个,使用3.6.4 ANY(SOME)或ALL谓词的子查询,使用聚合函数实现SELECT Sname,Sage FROM Student WHERE Sage CS,3.6.4 ANY(SOME)方法1: ALL谓词SELECT Sname,Sage FROM Student WHERE Sage CS,具有3.6.4 ANY(SOME)或ALL谓词的子查询,方法2:选择聚集函数SELECT Sname,Sage FROM Student WHERE Sage CS,具有3.6.4 ANY(SOME)或ALL谓词的子查询,ANY(或SOME),ALL谓词和聚集函数,IN谓词的等效转

10、换关系,具有3.6.5 EXISTS谓词的子查询,1.如果内部查询结果不为空,则外部WHERE子句将返回true。如果内部查询结果为空,则外部WHERE子句将返回EXISTS返回值为false的子查询。目标列表达式通常使用*。具有EXISTS的子查询仅返回true或false值,列名为2,没有实际意义。提供NOT EXISTS谓词。如果存在内部查询结果,则外层的WHERE子句将返回假值。如果内层查询结果为空,外层的WHERE子句将返回真值,3.6.5将返回带有EXISTS谓词的子查询。实例44查询选择了课程1的所有学生的姓名。事故分析:此查询包括Student和SC关系。从Student中依次

11、获取每个元组的Sno值。使用此值确定SC关系是否包含相应的元组。Sno值为Student。等于Sno值且Cno=1的情况下,导入student.sno作为嵌套查询select sname from student where exists(select * from sc where SnO=student . SnO and Cno=1),具有3.6.5 EXISTS谓词的子查询,示例45查询未参加课程1的学生的姓名。select sname from student where not exists(select * from sc where SnO=student . SnO and

12、cno=1);具有3.6.5 EXISTS谓词的子查询,具有其他形式的查询间替代部分EXISTS或NOT EXISTS谓词的子查询,不能使用具有IN谓词、比较运算符、ANY和ALL谓词的子查询替换具有ANY和ALL谓词的所有子查询。EXISTS/NOT EXISTS可实现全名韩鼎祥符号(困难)。SQL语言没有全称韩鼎祥符号(For all),因此您可以将具有全称韩鼎祥符号的谓词转换为具有相应现有韩鼎祥符号的谓词。(x) p (x),具有3.6.5 EXISTS谓词的子查询,示例39查询可以替换为具有EXISTS谓词的子查询。具有SELECT Sno、Sname、sdept from student S1 where EXISTS(SELECT * from student S2 where S2 . sdept=S1)、3.6.5 EXISTS谓词的子查询select sname from student where NOT EXISTS(select * from cour

温馨提示

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

评论

0/150

提交评论