包头师范学院数据库原理与应用课件 第三章2.pptVIP

  • 1
  • 0
  • 约1.65万字
  • 约 99页
  • 2019-05-06 发布于广东
  • 举报

包头师范学院数据库原理与应用课件 第三章2.ppt

An Introduction to Database System 3.4 查 询 3.4.1 单表查询 3.4.2 连接查询 3.4.3 嵌套查询 3.4.4 集合查询 3.4.5 SELECT语句的一般格式 3.4.2 连接查询 同时涉及多个表的查询称为连接查询 用来连接两个表的条件称为连接条件或连接谓词 一般格式: [表名1.]列名1 比较运算符 [表名2.]列名2 比较运算符:=、、、=、=、!= [表名1.]列名1 BETWEEN [表名2.]列名2 AND [表名2.]列名3 连接查询 (续) 连接字段 连接谓词中的列名称为连接字段 连接条件中的各连接字段类型必须是可比的,但不必是相同的 连接操作的执行过程 嵌套循环法(NESTED-LOOP) 首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找满足连接件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。 表2全部查找完后,再找表1中第二个元组,然后再从头开始扫描表2,逐一查找满足连接条件的元组,找到后就将表1中的第二个元组与该元组拼接起来,形成结果表中一个元组。 重复上述操作,直到表1中的全部元组都处理完毕 排序合并法(SORT-MERGE) 常用于=连接 首先按连接属性对表1和表2排序 对表1的第一个元组,从头开始扫描表2,顺序查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。当遇到表2中第一条大于表1连接字段值的元组时,对表2的查询不再继续 排序合并法 找到表1的第二条元组,然后从刚才的中断点处继续顺序扫描表2,查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。直接遇到表2中大于表1连接字段值的元组时,对表2的查询不再继续 重复上述操作,直到表1或表2中的全部元组都处理完毕为止 索引连接(INDEX-JOIN) 对表2按连接字段建立索引 对表1中的每个元组,依次根据其连接字段值查询表2的索引,从中找到满足条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组 连接查询 (续) SQL中连接查询的主要类型 广义笛卡尔积 等值连接(含自然连接) 非等值连接查询 自身连接查询 外连接查询 复合条件连接查询 一、广义笛卡尔积 不带连接谓词的连接 很少使用 例: SELECT Student.* , SC.* FROM Student, SC 二、等值与非等值连接查询 等值连接、自然连接、非等值连接 [例33] 查询每个学生及其选修课程的情况。 SELECT Student.*,SC.* FROM Student,SC WHERE Student.Sno = SC.Sno; 等值连接 连接运算符为 = 的连接操作 [表名1.]列名1 = [表名2.]列名2 任何子句中引用表1和表2中同名属性时,都必须加表名前缀。引用唯一属性名时可以加也可以省略表名前缀。 等值连接 假设Student表、SC表分别有下列数据: Student表 等值连接 SC表 等值连接 结果表 Student.Sno Sname Ssex Sage Sdept SC.Sno Cno Grade 95001 李勇 男 20 CS 95001 1 92 95001 李勇 男 20 CS 95001 2 85 95001 李勇 男 20 CS 95001 3 88 95002 刘晨 女 19 IS 95002 2 90 95002 刘晨 女 19 IS 95002 3 80 ? 自然连接 等值连接的一种特殊情况,把目标列中重复的属性列去掉。 [例34] 对[例33]用自然连接完成。 SELECT Student.Sno,Sname,Ssex,Sage, Sdept,Cno,Grade FROM Student,SC WHERE Student.Sno = SC.Sno; 非等值连接查询 连接运算符 不是 = 的连接操作 [表

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档