关系数据库标准语言SQL(精品).ppt

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关系数据库标准语言SQL(精品)

第三章 关系数据库标准语言SQL;3.4 数据查询 ;3.4.2 连接查询;连接条件;3.4.2 连接查询;一、等值与非等值连接查询 ;;例33;自然连接(内连接);;连接查询;二、自身连接 ;;Cno ;连接查询(续);三、外连接;;;例33;左外连接; 左外连接 列出左边关系(如本例Student)中所有的元组 右外连接 列出右边关系中所有的元组 表1 RIGHT OUTER JION 表2 ON 连接条件;连接查询;四、复合条件连接;多表连接;3.4 数据查询 ;3.4.3 嵌套查询;例如;注意;嵌套查询的求解方法;不相关子查询;相关子查询;3.4.3 嵌套查询;一、带有IN谓词的子查询;;;;;[例40] 查询选修了课程名为“信息系统”的学 生学号和姓名。 ;嵌套查询实现;3.4.3 嵌套查询;二、带有比较运算符的子查询;带有比较运算符的子查询(续);;[例41]找出每个学生超过他选修课程平均成 绩的课程号。 SELECT Sno,Cno FROM SC x WHERE Grade =(SELECT AVG(Grade) FROM SC y WHERE y.Sno=x.Sno);;;SC表; 1. 从外层查询中取出SC的一个元组x,将元组x的Sno值(200215121)传送给内层查询。 SELECT AVG(Grade) FROM SC y WHERE y.Sno=200215121; 2. 执行内层查询,得到值88(近似值),用该值代替内层查询,得到外层查询: SELECT Sno, Cno FROM SC x WHERE Grade =88; ;3. 执行这个查询,得到 (200215121,1) 4.外层查询取出下一个元组重复做上述1至3步骤,直到外层的SC元组全部处理完毕。结果为: (200215121,1) (200215122,2) ;3.4.3 嵌套查询;三、带有ANY(SOME)或ALL谓词的子查询 ;需要配合使用比较运算符: ANY 大于子查询结果中的某个值 ALL 大于子查询结果中的所有值 ANY 小于子查询结果中的某个值 ALL 小于子查询结果中的所有值 = ANY 大于等于子查询结果中的某个值 = ALL 大于等于子查询结果中的所有值 = ANY 小于等于子查询结果中的某个值 = ALL 小于等于子查询结果中的所有值 = ANY 等于子查询结果中的某个值 =ALL 等于子查询结果中的所有值(通常没有实 际意义) !=(或??ANY 不等于子查询结果中的某个值 !=(或)ALL 不等于子查询结果中的任何一个值;[例42] 查询其他系中比计算机科学某一学生年 龄小的学生姓名和年龄。 SELECT Sname,Sage FROM Student WHERE Sage ANY ( SELECT Sage FROM Student WHERE Sdept= CS ) AND Sdept ‘CS ; ;Student表;结果: 执行过程: 1.RDBMS执行此查询时,首先处理子查询,找出 CS系中所有学生的年龄,构成一个集合(20,19) 2. 处理父查询,找所有不是CS系且年龄小于 20 或 19的学生;用聚集函数实现: SELECT Sname,Sage FROM Student WHERE Sage (SELECT MAX(Sage) FROM Student WHERE Sdept= ‘CS ) AND Sdept CS ’;;[例43] 查询比计算机科学系所有学生年龄都小的学生姓名及年龄。 方法一:用ALL谓词 SELECT Sname,Sage FROM Student WHERE Sage A

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档