数据库选修课_关系数据库解读.ppt

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

Page * SQL查询语句例_2 例7-8 :选择表中若干元组 ⑴ 查询信息51班学生的情况 SELECT * FROM S WHERE 班级=信息51; ⑵ 查询信息51班选修了课程的女生的学号 SELECT DISTINCT 学号 FROM SC WHERE 班级=信息51 AND 性别=女; 其中,DISTINCT限定学号相同的记录只显示一个,AND是逻辑与运算符 Page * SQL查询语句例_3 ⑶ 查询年龄在20~23岁之间的学生的姓名、 班级和年龄 SELECT 姓名, 班级, 年龄 FROM S WHERE 年龄 BETWEEN 20 AND 23; ⑷ 查询选修050012号课程的学生的学号和成绩,查询结果按成绩降序排列 SELECT 学号, 成绩 FROM SC WHERE 课程号=050012 ORDER BY 成绩 DESC; 多表连接查询-内连接(Cont.) 例如,两表根据条件 number = scale 进行内连接 number name 1 张山 2 李斯 scale Address 1 北京 1 上海 2 西安 2 成都 结果 number name scale Address 1 张山 1 北京 1 张山 1 上海 2 李斯 2 西安 2 李斯 2 成都 例1:查询每名学生的情况及其选课情况。 SELECT * FROM student JOIN SC ON student.Sno = SC.Sno 注意: 结果中有重复的Sno列 例2:查询计算机系学生选课情况, 列出学生的姓名、课程号和成绩 SELECT Sname, Cno, Grade FROM student JOIN SC ON student.Sno = SC.Sno WHERE Sdept = 计算机系 可为表指定别名,以简化书写。但一旦指定别名,用到该表名的地方都必须使用别名 例3:查询信息系选修VB的课程的学生的成绩 列出学号、姓名、课程名和成绩 SELECT a.Sno, a.Sname, c.Cname, b.Grade FROM student a JOIN SC b ON a.Sno = b.Sno JOIN course c ON c.Cno = b.Cno WHERE a.Sdept = 信息系 AND c.Cname = VB编程语言 2. 多表连接查询-自连接 自连接: 特殊的内连接,把一个表自己与自己做内连接 即物理上一个表,逻辑上是两个表 使用自连接时必须为自连接的表起两个别名,使之在逻辑上成为两个表 自连接的格式: SELECT 别名1|别名2.列名1, 别名1|别名2.列名2 FROM 表名 [AS] 别名1 JOIN 表名 [AS] 别名2 ON 连接条件 …(其它子句) 2. 多表连接查询-自连接(Cont.) 例:查询与李勇在同一个系的学生的姓名和系名 SELECT S2.Sname, S2.Sdept FROM student S1 JOIN student S2 ON S1.Sdept = S2.Sdept WHERE S1.Sname = 李勇 AND S2.Sname != 李勇 3. 多表连接查询-外连接 在内连接中,只有满足连接条件的元组才在结果中。结果中需要不满足连接条件的元组时:外连接 外连接只限制一个表的数据必须满足连接条件,而另一个表中的数据可以不满足连接条件 外连接格式: FROM 表1 LEFT|RIGHT [OUTER] JOIN 表2 ON 连接条件 LEFT [OUTER] JOIN称为左外连接,它限制表2中的数据必须满足连接条件,表1不限 RIGHT [OUTER] JOIN称为右外连接,它限制表1中的数据必须满足连接条件,表2不限 多表连接查询-外连接 例:查询学生选课情况,包括选课及未选课的学生 SELECT a.Sno, Sname, Cno, Grade FROM student a LEFT JOIN SC ON a.Sno = SC.Sno 可知: LEFT JOIN:左表(表1)数据全在结果中 RIGH

文档评论(0)

22ffbqq + 关注
内容提供者

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

1亿VIP精品文档

相关文档