new第四章关系数据库标准语言SQL(二)创新.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.4 数据查询 4.4.1 SELECT的基本应用 4.4.2 连接查询 4.4.3 嵌套查询 4.4.4 集合查询 4.4.2 连接查询 定义:如果一个查询需要对多个表进行操作,就称为连接查询。 类别:等值连接查询、非等值连接查询、自然连接查询、自身链接、查询外连接查询和复合条件连接查询。 4.4.2 连接查询 (续) 连接条件或连接谓词:用来连接两个表的条件 一般格式: [表名1.]列名1 比较运算符 [表名2.]列名2 [表名1.]列名1 BETWEEN [表名2.]列名2 AND [表名2.]列名3 连接字段:连接谓词中的列名称 连接条件中的各连接字段类型必须是可比的,但名字不必是相同的 ①等值连接和非等值连接 当连接运算符为=时,称为等值连接。使用其它运算符称为非等值连接。 例4-46 查询每个学生及其选修课程的情况。 SELECT * FROM Student, SC WHERE Student.Sno=SC.Sno; ①等值连接和非等值连接(续) ①等值连接和非等值连接 连接运算中有两种特殊情况,一种称为笛卡尔积连接,另一种称为自然连接。 例4-47 Course表和SC表做笛卡尔积连接。 SELECT * FROM Course, SC; 如果是按照两个表中的相同属性进行等值连接,且目标列中去掉了重复的属性列,但保留了所有不重复的属性列,则称之为自然连接。 ①等值连接和非等值连接 例4-48 自然连接Course和SC表。 SELECT Course.Cno, Cname, Cpno,Ccredit, Sno, Grade FROM Course, SC WHERE Course.Cno=SC.Cno; ②自身连接 连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,这种连接称为表的自身连接。 需要给表起别名以示区别。 由于所有属性名都是同名属性,因此必须使用别名前缀。 ②自身连接(续) 例4-49 查询每一门课的间接先修课(即先修课的先修课)。 ②自身连接(续) SELECT FIRST.Cno,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno = SECOND.Cno; 查询结果: ③外连接 例4-50 以Student表为主体列出每个学生的基本情况及其选课情况。 SELECT Student.Sno, Sname, Ssex, Sage, Sdept, Cno, Grade FROM Student, SC WHERE Student.Sno=SC.Sno(+); ③外连接 外连接与普通连接的区别 普通连接操作只输出满足连接条件的元组 外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出。 外连接(续) 外连接(续) 左外连接 列出左边关系(如本例Student)中所有的元组 Select * from student left join sc on student.sno=sc.sno 右外连接 列出右边关系中所有的元组 Select * from sc right join student on student.sno=sc.sno ④复合条件连接 复合条件连接:WHERE子句中含多个连接条件。 例4-51查询选修2号课程且成绩在90分以上的所有学生。 SELECT Student.Sno, Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND SC.Cno=2 AND SC.Grade90; 复合条件连接(续) [例4-51]查询每个学生的学号、姓名、选修的课程名及成绩 SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course /*多表连接*/ WHERE Student.Sno = SC.Sno and SC.Cno = Course.Cno; ? 4.4 数据查询 4.4.1 SELECT的基本应用 4.4.2 连接查询 4.4.3 嵌套查询 4.4.4 集合查询 4.4.3 嵌套查询 嵌套查询是将其他查询嵌套在另一个查询里面的查询,嵌套在查询中的查询称为子查询。当然,子查询本身也可以是嵌套查询,这样就可以形成更深层次的查询。 子查询通常出现在WHERE子句中,有时候也出现FROM子句中,有时候也出现在HAVING短语中。 子查询的SELECT语句中不能使用O

文档评论(0)

奇缘之旅 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档