数据库基础与实践技术第7章 高级查询.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
示例(续) (3)建立表示这类反例不存在的搜索条件: Cond2: not exists( Select * from sc x where s.sno = 0811102 and not exists( select * from sc y where y.cno = x.cno and y.sno = ?.sno) * 示例(续) (4)建立完整的SELECT语句 SELECT Sno, Cno FROM SC s1 WHERE NOT EXISTS( SELECT * FROM SC x WHERE Sno = 0811102 and NOT EXISTS( select * from SC y where y.Cno = x.Cno and y.Sno = s1.Sno)) and Sno != 0811102 去掉0811102本人 * 7.2.3 其他形式的子查询 1.替代表达式的子查询 2.派生表 */131 1.替代表达式的子查询 指在SELECT的选择列表中,嵌入一个只返回一个标量值的SELECT语句,这个查询语句通常都是一个聚合函数。 例30. 查询选了C001课程的学生学号、考试成绩以及该门课程的平均成绩。 SELECT Sno,Grade, (SELECT AVG(Grade) FROM SC WHERE Cno = C001) AS AvgGrade FROM SC WHERE Cno = C001 */131 示例 例31. 查询选了C001课程的学生学号、考试成绩、该门课程的平均成绩以及每个学生与平均成绩的差。 SELECT Sno,Grade, (SELECT AVG(Grade) FROM SC WHERE Cno = C001) AS AvgGrade, Grade - (SELECT AVG(Grade) FROM SC WHERE Cno = C001) AS AvgGradeDiff FROM SC */131 2. 派生表 有时也称为内联视图,是将子查询做为一个表来处理,这个由子查询产生的新表就称之为“派生表”,这很类似于临时表。 可以在查询语句中用派生表来建立与其它表的连接关系,在生成派生表后,在查询语句中对派生表的操作与普通表一样。 */131 示例 例32. 查询至少选了C001和C002两门课程的学生学号。 SELECT T1.Sno FROM (SELECT * FROM SC WHERE Cno = C001) AS T1 JOIN (SELECT * FROM SC WHERE Cno = c002) AS T2 ON T1.Sno=T2.Sno */131 示例 例33.查询至少选了C001和C002两门课程的学生的姓名、所在系、所选的课程号和课程名。 SELECT Sname,Dept,C.Cno,Cname FROM Student S JOIN SC ON S.Sno = SC.Sno JOIN Course C ON C.Cno = SC.Cno WHERE S.Sno IN ( SELECT T1.Sno FROM (SELECT * FROM SC WHERE Cno = C001) AS T1 JOIN (SELECT * FROM SC WHERE Cno = c002) T2 ON T1.Sno=T2.Sno) */131 7.3 查询结果的并、交、差运算 SELECT语句的查询结果是元组的集合,所以多个SELECT语句的结果可进行集合操作。 集合操作主要包括: UNION(并)、 INSTERSECT(交) EXCEPT(差) */76 */131 7.3.1 并运算 并运算可将两个或多个查询语句的结果集合并为一个结果集,这个运算可以使用 UNION 运算符实现。 UNION是一个特殊的运算符,通过它可以实现让两个或更多的查询产生单一的结果集。 */76 */131 并操作示例 */76 */131 UNION语法格式 SELECT语句1 UNION [ ALL ] SELECT语句2 UNION [ ALL ] … … SELECT语句n ALL表示在结果集中包含所有查询语句产生的全部记录,包括重复的记录。如果没有指定ALL,则系统默认是删除合并后结果集

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档