VF课件7.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VF课件7

本章重点和难点 分组与计算查询 7.4.5 例: 2 . 统计Scores表中至少有两名学生参加考试的各门课程的平均成绩 SELECT 课程号,COUNT(*),AVG(分数) FROM Scores; GROUP BY 课程号 HAVING COUNT(*)=2 1 . 统计Scores表中学生每门课程的平均成绩,查询结果包括课程号,平均成绩。 SELECT 课程号,AVG(分数) FROM Scores GROUP BY 课程号 ① 在这个查询中,首先按课程号属性进行分组,然后再计算每门课程的平均成绩。GROUP BY 子句一般跟在WHERE子句之后,没有WHERE子句时,跟在FROM子句之后。另外,还可以根据多个属性进行分组。 ② 在分组查询时,有时要求分组满足某个条件时才检索,这时可以用HAVING子句来限定分组,HAVING子句不能单独使用。 注 利用空值查询 7.4.8 例: 1.先利用Student和Scores两个关系生成一个新的关系(Speciality)之后再增加两个字段(班长号和班主任) SELECT Student.学号,姓名,Course.课程号,专业,分数 ; FROM Student,Scores ,Course WHERE Student.学号=Scores.学号 ; AND Course.课程号=Scores.课程号 and Course.课程号=“07001” INTO TABLE Speciality ALTER TABLE Speciality ADD 班长号 C(9) ADD 班主任 C(10) null **首先生成一个Speciality关系。增加两个属性,班长和班主任 2 . 利用Speciality表找出未确定班主任的专业 SELECT DISTINCT(专业) FROM Speciality WHERE 班主任 IS NULL 3 . 利用Speciality表找出已确定班主任的专业 SELECT DISTINCT(专业) FROM Speciality WHERE 班主任 IS NOT NULL 别名与自连接查询 7.4.9 ● 格式 关系名别名 功能:给关系重新定义一个名称,以便在查询中引用。 例: 1 .对于基于3个关系的联接查询,其中必须使用关系名作前缀,如果使用别名就会简单一些。 SELECT Student.学号,姓名,课程名,分数 FROM Student,Scores,Course ; WHERE Student.学号=Scores.学号 AND Scores.课程号=Course.课程号 **首先生成一个Speciality关系。增加两个属性,班长和班主任 SELECT S.学号,姓名,课程名,分数 FROM Student S,Scores C,Course U ; WHERE S.学号=C.学号 AND C.课程号=U.课程号 别名与自联接查询 7.4.9 ● 自联接 :可以将同一关系与其自身进行联接 为了说明自联接,我们用Speciality关系: 其中的学号和班长号两个属性出自同一个值域,同一元组的这两个属性值是“上、下级”关系。班长号属性和学号属性是一对多关系。 例: 根据Speciality 关系列出班长号和学号的对应关系 SELECT DISTINCT 学号,姓名,班长号 FROM Speciality into table Speciality1 **首先修改Speciality关系生成一个没有学号重复的关系Speciality1 。 **使用这个表完成关系的自联接 SELECT S.姓名,是,E.姓名,的班长 FROM Speciality1 S,Speciality1 E; WHERE S.学号=E.班长号 在关系的自联接操作中,别名是必不可少的 在SELECT短语中可以有常量,如这里的“是”和“的班长”。 内外层互相嵌套查询 7.4 .10 嵌套查询一般都是外层查询依赖于内层查询的结果,而内层查询与外层查询无关。事实上,有时也需要内外相关的查询,这时内层的条件需要外层查询提供值,而外层查询的条件需要内层查询的结果。 例: 使用Speciality 关系列出每个学生考试最高分的所有信息 SELECT out.学号,out.姓名,out.课程号,out.专业,out.分数,out.班长号,out.班主任; FROM Speciality out WHERE 分数= (SELECT MAX(分数) ; FROM Speciality inner1 WHERE out.学号=inner1.学号) **在这个查询中,外层查询使用同一个关系,给它们分别指定别名out 和 inner1。外层查询

文档评论(0)

sd44055 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档