chapter07连接统计函数.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文档。上传文档
查看更多
chapter07连接统计函数

数据查询 连接查询 ●内连接 在非ANSI标准的实现中,是在WHERE子句中指定表连接条件,在ANSI SQL-92中,连接是在JOIN子句中指定。这些连接方式分别被称为theta方式和ANSI方式。我们这里介绍的是ANSI方式的连接。 内连接的格式为: FROM 表1 [ INNER ] JOIN 表2 ON 连接条件 在连接条件中指明两个表按什么条件进行连接,连接条件中的比较运算符称为连接谓词。连接条件的一般格式为: [表名1.][列名1] 比较运算符 [表名2.][列名2] 注意:两个表的连接列必须是可比较的,即必须是语义相同的列,否则比较将是无意义的。 当比较运算符为等号(=)时,称为等值连接,使用其他运算符的连接称为非等值连接。 ●多表连接查询 例:查询每个学生及其修课的情况。只选取学号、姓名、课程号和成绩。 SELECT SC.Sno,Sname,Cno,Grade FROM Student INNER JOIN SC ON Student.Sno=SC.Sno 例A:查询系编号d001(计算机系)和d003(数字艺术系)各学生的选课情况和每门课的成绩。将每个系的名单排在一起。 SELECT Sname,Cno,Grade FROM Student INNER JOIN SC ON Student.Sno=SC.Sno WHERE dname=d001 OR dname=d003 ORDER BY dname 多表连接查询可以为表名取别名,其格式为: 源表名 [ AS ] 表别名 例:将例A这个例子用别名可写为: SELECT Sname,Cno,Grade FROM Student S JOIN SC ON S.Sno=SC.Sno WHERE dname=d001 OR dname=d003 ORDER BY dname 例:查询计算机系选修了VB课程的学生的修课成绩,要求列出学生姓名、课程名和成绩。 SELECT S.Sname,C.Cname,SC.Grade FROM Student S JOIN SC ON S.Sno=SC.Sno JOIN Course C ON C.Cno=SC.Cno WHERE S.dname=d001 AND C.Cname=‘VB ●自连接查询 这是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表。 使用自连接时必须为两个表取别名,使之在逻辑上成为两张表。它解决了列与列之间的逻辑关系问题,准确的讲是列与列之间的层次关系。 例:查询与学生冯坤在同一个系学习的学生情况。 不用自连接,用简单查询也可以实现。作两次查询。 1.SELECT dname FROM Student where Sname=’冯坤’ 查到冯坤所在的系,为g004(表演系)。再通过语句 2.SELECT Sname,dname FROM Student where dname=’g004’ SELECT S2.Sname,S2.dname FROM Student S1 JOIN Student S2 ON S1.dname=S2.dname WHERE S1.Sname=‘冯坤’ [AND S2.Sname’冯坤’] ●外连接 在内连接操作中,只有满足连接条件的元组才能作为结果输出,但有时我们也希望输出那些不满足连接条件的元组的信息,这时就需要使用外连接。外连接是只限制一张表中的数据必须满足连接条件,而另一张表中数据可以不满足连接条件。 ANSI方式的外连接的语法格式为: FROM 表1 LEFT | RIGHT [OUTER] JOIN 表2 ON 连接条件 theta方式的外连接的语法格式为: 左外连接:FROM 表1 , 表2 WHERE [表1.]列名(+) = [表2.]列名 右外连接:FROM 表1 , 表2 WHERE [表1.]列名 = [表2.]列名(+) SQL Server支持ANSI方式的外连接,Oracle支持theta方式的外连接。 如果用右外连接,结果会怎样呢? 例:查询每个学生的情况和选课情况,即使有些学生没有选修任何课程,也要列出他的信息。 SELECT S.Sno,Sname,Cno,Grade FROM Student S LEFT JOIN

文档评论(0)

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

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

1亿VIP精品文档

相关文档