数据库原理与开发 教学课件 作者 赵明砚 单世民 赵凤强 第3章2.pptVIP

数据库原理与开发 教学课件 作者 赵明砚 单世民 赵凤强 第3章2.ppt

  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文档。上传文档
查看更多
3.3 数据查询 3.3.1单表查询 3.3.2多表查询 3.3.3嵌套查询 3.3.4集合查询 3.3.5视图查询 3.3.6 查询语句小结 3.3.2 多表查询 同时涉及多个表的查询称为连接查询 用来连接两个表的条件称为连接条件或连接谓词 内连接查询:包括等值及非等值连接、自然连接、自身连接 外连接查询 交叉连接查询 最常用的连接查询。交叉连接查询是指内、外连接查询同时出现在一条查询语句的连接查询,书写起来比较复杂,使用量较小。本节只介绍内连接和外连接查询。 连接查询 (续) 连接字段 连接谓词中的列名称为连接字段 连接条件中的各连接字段类型必须是可比的,但不必是相同的 1、内连接 内连接是指在多个表中查询满足连接条件的元组,其格式为: SELECT [表名1.] [列名1],…… FROM 表名1 [INNER] JOIN 表名2 ON 连接条件 也可以写为: SELECT [表名1.] [列名1],…… FROM 表名1,表名2 WHERE 连接条件 其中连接条件的格式一般为: [表名1.]列名比较运算符[表名2.]列名 连接条件也可以使用下面形式: [表名1.]列名 BEDTWEEN [表名2.]列名2 AND [表名2.]列名3 为了区分表中的属性列,可以给属性列加上表名前缀,但如果属性列名都不相同,可以取消属性列前面的表名前缀。为了方便书写,可以对表取一个别名,其形式与属性列别名类似,即将表的别名写在表名后,用空格隔开。 当连接条件中的运算符为“=”时,称为等值连接。使用其他运算符称为非等值连接。连接条件中的列名称为连接字段。 连接操作的执行过程 在DBMS执行连接操作时,其查找过程如下:首先取表1中第1个元组,然后从头开始扫描表2的每一个元组,逐一查找满足连接条件的元组,找到后就将表1中的第1个元组与该元组拼接起来,形成结果表中一个元组。表2全部扫描完后,再取表1中第2个元组,然后再从头开始扫描表2的每一个元组,逐一查找满足连接条件的元组,找到后就将表1中的第2个元组与该元组拼接起来,形成结果表中的一个元组。重复上述操作,直到表1中的全部元组都处理完毕为止。 【例3-26】 查询每个学生及其选修课程的详细信息。 学生的详细信息存放在Student表中,学生选修课程的详细信息存放在SC表中。本题需要对这两个表进行连接查询,这两个表之间的联系是通过公共属性Sno实现的。 SELECT Student.*, SC.* FROM Student, SC WHERE Student.Sno=SC.Sno; /*将Student与SC中同一学生的元组连接起来*/ 请大家参照书自行写出查询结果 【例3-27】 查询选修了课程名为“数据库”的学生学号和姓名。 思路:学生的学号和姓名要在Student表中查询,课程名是Course表中的属性列,选修课程的学生在SC表中存放,因此本查询涉及Student表、Course表和SC表,是3个表的连接查询。我们再观察一下这3个表,Student表与SC表有共同的属性Sno,Course表和SC表有共同的属性Cno,可以通过这两个相同的属性进行3个表的连接。 SELECT Sno,Sname FROM Student,SC,Course WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Course.Cname=′数据库′; 内连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,称为表的自身连接。 【例3-28】 查询与“丁林”在同一个系学习的学生。 SELECT S1.Sno, S1.Sname, S1.Sdept FROM Student S1, Student S2 WHERE S1.Sdept=S2.Sdept AND S2.Sname=′丁林′; 2、外连接 在内连接操作中,只有满足连接条件的元组才能作为结果输出。但有时我们也希望输出那些不满足连接条件的元组信息,这时就需要用外连接操作。如希望查找Student表中每个学生的基本情况及其选课情况,若某个学生没有选课,也输出其基本情况信息,其选课信息为空值即可,这时就需要使用外连接。 外连接又分为:左外连接和右外连接。 其语句格式为: SELECT [表名1.] [列名1],…… FROM 表名1 LEFT | RIGHT [OUTER] JOIN 表名2 ON 连接条件 其中,LEFT [OUTER] JOIN称为左外连接,表1中的数据可以全部输出,而表2中的数据必须满足连接条件; RIGHT [OUTER] JOIN称为右外连接,表2中的数据可以全部输出,而表1中的数据必须满足连接条件。 也可以写为: SELECT [表名1.] [列名1],…

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档