数据库上课 第六讲 SQL语言_3(连接与聚合).ppt

数据库上课 第六讲 SQL语言_3(连接与聚合).ppt

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

作业: 1、练习课本上本章已学部分的例子; 要求:看懂,理解其执行过程。 2、建立图书管理数据库BookDB和相关表(p131) 要求:写出SQL文件,后缀.sql; 属性名要有注释; 推荐文本编辑器notepad++。 * * 1.1.2 自然连接 自然连接的方法是在等值连接的基础上消除重复列 [例3.30] 实现成绩表Score和课程表Course的自然连接。 SELECT studentNo, a.courseNo, score, courseName, creditHour, courseHour, priorCourse FROM Score a, Course b WHERE a.courseNo=b.courseNo 课程编号在两个关系中同时出现,且相同,只需输出一次,即在SELECT子句中仅需出现1次,因此使用a.courseNo,也可以使用b.courseNo。 * * 1.1.3 非等值连接 非等值连接使用的比较少。 练习:以例2.16(p61)为基础。写出SQL。 * * 1.2 自表连接 若某个表与自己进行连接,称为自表连接 主要用途是检索一张表内部的匹配情况 * * 示例 例:查找每门课的间接先修课程(即先修课程的先修课程)。 分析:在Course表中只有先修课程。 把两个Course表进行连接,即自表连接。 SELECT first.courseName,Sec.priorCourse FROM Course first, Course Sec WHERE first.priorCourse = Sec.courseNo * * Course first Course Sec [例3.31] 查找同时选修了编号为“001”和“002”课程的同学学号、姓名、课程号和相应成绩,并按学号排序输出。 From表 : 学生姓名?Student (取别名为a) 两个成绩表,分别起别名b和c(Score b, Score c) b表用于查询选修了编号为“001”课程的同学 c表用于查询选修了编号为“002”课程的同学 * * Where 选择条件: b.courseNo=001 AND c.courseNo=002 Where 连接条件: 成绩表b与成绩表c在学号上做等值连接(自表连接) b.studentNo = c.studentNo 学生表与成绩表b (或成绩表c)在学号上做等值连接。 a.studentNo = b.studentNo * * 综上 SELECT a.studentNo, studentName, b.courseNo, b.score, c.courseNo, c.score FROM Student a, Score b, Score c WHERE b.courseNo=001 AND c.courseNo=002 AND a.studentNo=b.studentNo AND b.studentNo=c.studentNo ORDER BY a.studentNo 注意:两个参与自表连接的成绩表Score,必须定义元组变量加以区分 * * 自表连接 [例3.32] 在学生表Student中查找与“李宏冰”同学在同一个班的同学姓名、班级编号和出生日期。 分析 Select属性:姓名、班级编号和出生日期 From表:所需属性都在student表,涉及其内部情况,需自表连接。 Where连接条件:“同一个班”?班级号相同 Where选择条件:姓名=‘李宏冰’ * * 查询语句: SELECT a.studentName, a.classNo, a.birthday FROM Student a, Student b WHERE b.studentName=李宏冰 AND a.classNo=b.classNo * * +-------------+---------+---------------------+ | studentName | classNo | birthday | +-------------+---------+---------------------+ | 王红 | CP0802 | 0000-00-00 00:00:00 | | 李志强 | CP0802 | 0000-00-00 00:00:00 | | 黄勇 | CP0802 | 0000

文档评论(0)

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

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

1亿VIP精品文档

相关文档