网站大量收购独家精品文档,联系QQ:2885784924

[教育]第9-10讲 SQL高级应用.ppt

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

第6章 SQL 高级应用 主要介绍:SQL Server的多表查询技术,即在一个查询中涉及到多个表的处理。 多表查询技术: 连接查询:在FROM子句中,指定连接的表。在WHERE子句中,指定连接的条件。由此实现多表连接查询。 自然连接 自[身]连接 外连接 子查询:一个查询的结果是另一个查询的条件。 子查询 相关子查询 6.1 SELECT 高级查询 1. 表的连接查询(自然连接) 涉及两个以上不同表的查询,连接条件为表之间相匹配列的等值条件,连接条件的个数至少是连接表的个数减1。 连接查询(自然连接) 例6.2 查询所有学生的sno、cname和grade列。 SELECT x.sno, cname, grade FROM score x,course y WHERE x.cno=y.cno 注意:当输出的列涉及多个表时必须使用连接查询。 例6.3 查询“计算机”系所选课程的平均分。 SELECT cno,AVG(grade) AS 平均分 FROM student x,score y WHERE x.sno=y.sno and dept=‘计算机 GROUP BY cno 连接查询(自然连接) 例6.4 查询‘王丽’同学的选课情况,显示姓名、课程号、成绩。 方法1: SELECT cno, sname, grade FROM score x,student y WHERE x.sno=y.sno and sname=’王丽’ 方法2:内连接(INNER JOIN) SELECT cno, sname, grade FROM student INNER JOIN score on (student.sno=score.sno) WHERE sname=‘王丽 连接查询(自身连接) 2. 表的连接查询(自身连接) 涉及同一个表的连接查询。 例6.5 查询选学“c3”课程的成绩高于“9503301”号学生成绩的所有学生记录,并按成绩从高到低排列。 SELECT x.cno,x.sno,x.grade FROM score x ,score y WHERE x.cno=‘c3 and x.gradey.grade and y.sno=‘9503301 and y.cno=‘c3 ORDER BY x.grade DESC 连接查询(自身连接) 例6.6 查询与“9802109”号学生同龄的学生信息 方法1: SELECT y.sname, x.sname, year(x.birthday) FROM student x,student y WHERE x.sno=‘9503301 and x.snoy.sno and yera(y.birthday)=year(x.birthday) 方法2:内连接(INNER JOIN) SELECT y.sname, year(x.birthday) FROM student x INNER JOIN student y on (yera(y.birthday)=year(x.birthday)) WHERE x.sno=‘9503301 and x.snoy.sno 连接查询(外连接) 3. 外连接 主表与非主表进行外连接,返回连接的数据表中所有匹配的行和主表中的不匹配的行,对应的非主表属性上填NULL值。 外连接类型 (1) 左外连接(LEFT JOIN):左侧的表为主表 (2) 右外连接(RIGHT JOIN):右侧的表为主表 (3) 完全外连接(FULL JOIN):左侧和右侧的表均为 主表 连接查询(外连接) 连接查询(外连接) 连接查询(外连接) 例6.8 查询各课程的任课教师姓名,以及没人讲授的课程。 SELECT course.cname,teacher.tname FROM course LEFT JOIN teacher ON(course.tno=teacher.tno) 连接查询(外连接) 例6.9 查询各课程的任课教师姓名,没有承担课程的教师。 SELECT course.cname,teacher.tname FROM course RIGHT JOIN teach

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档