- 1、本文档共66页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库上课第五讲SQL语言_2(简单查询与连接)要点
要求按学号排序输出,需要排序语句ORDER BY 本查询语句为: SELECT a.studentNo, studentName, b.courseNo, b.score, c.courseNo, c.score FROM Student a, Score b, (SELECT * FROM Score WHERE courseNo=002) c WHERE b.courseNo=001 AND a.studentNo=b.studentNo AND a.studentNo=c.studentNo ORDER BY a.studentNo * * 该查询也可以表示为: SELECT a.studentNo, studentName, b.courseNo, b.score, c.courseNo, c.score FROM Student a, (SELECT * FROM Score WHERE courseNo=001) b, (SELECT * FROM Score WHERE courseNo=002) c WHERE a.studentNo=b.studentNo AND a.studentNo=c.studentNo ORDER BY a.studentNo * * 该查询还可以表示为: SELECT a.studentNo, studentName, b.courseNo, b.score, c.courseNo, c.score FROM Student a, Score b, Score c WHERE a.studentNo=b.studentNo AND a.studentNo=c.studentNo AND b.courseNo=001 AND c.courseNo=002 ORDER BY a.studentNo * * 2.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。其他列名是唯一的,不需要加上元组变量 * * 2.1.3 非等值连接 非等值连接使用的比较少。 练习:以例2.16(p61)为基础。写出SQL。 * * 2.2 自表连接 若某个表与自己进行连接,称为自表连接 主要用途是检索一张表内部的匹配情况 [例3.31] 查找同时选修了编号为“001”和“002”课程的同学学号、姓名、课程号和相应成绩,并按学号排序输出。 学生姓名在学生表中,必须包含学生表(取别名为a) 考虑两个成绩表,分别起别名b和c(Score b, Score c) b表用于查询选修了编号为“001”课程的同学 c表用于查询选修了编号为“002”课程的同学 * * FROM子句还必须包含两个成绩表b和c,且在WHERE子句中包含两个选择条件: b.courseNo=001 AND c.courseNo=002 一方面,成绩表b与成绩表c在学号上做等值连接(自表连接),如果连接成功,表示学生同时选修了编号为“001”和“002”的课程 另一方面,学生表与成绩表b (或成绩表c)在学号上做等值连接。WHERE子句包含两个连接条件: b.studentNo=c.studentNo AND 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.studen
文档评论(0)