教据库系统概论 An Introduction to Database System 第三章关系数据库标准语言 sQL(续1) 中国人民大学信息学院 An Introduction to Database System
An Introduction to Database System 中国人民大学信息学院 数据库系统概论 An Introduction to Database System 第三章 关系数据库标准语言 SQL (续1)
3.4数据查询 34.1单表查询 342连接查询 343嵌套査询 344集合查询 345 Select语句的一般形式 An Introduction to Database System
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> ◆连接字段:连接谓词中的列名称 连接条件中的各连接字段类型必须是可比的,但名字不必是相同的 An Introduction to Database System
An Introduction to Database System 3.4.2 连接查询 ❖ 连接查询:同时涉及多个表的查询 ❖ 连接条件或连接谓词:用来连接两个表的条件 一般格式: ◼ [.] [.] ◼ [.] BETWEEN [.] AND [.] ❖ 连接字段:连接谓词中的列名称 ◼ 连接条件中的各连接字段类型必须是可比的,但名字不必是相同的
连接操作的执行过程 令嵌套循环法( NESTED-LOOP) 首先在表1找到第一个元组,然后从头开始扫描表2,逐一査找 满足连接件的元组,找到后就将表1中的第一个元组与该元组拼 接起来,形成结果表中一个元组。 表2全部査找完后,再找表1中第二个元组,然后再从头开始扫描 表2,逐一査找满足连接条件的元组,找到后就将表1中的第二个 元组与该元组拼接起来,形成结果表中一个元组 重复上述操作,直到表1中的全部元组都处理完毕 An Introduction to Database System
An Introduction to Database System 连接操作的执行过程 ❖ 嵌套循环法(NESTED-LOOP) ▪ 首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找 满足连接件的元组,找到后就将表1中的第一个元组与该元组拼 接起来,形成结果表中一个元组。 ▪ 表2全部查找完后,再找表1中第二个元组,然后再从头开始扫描 表2,逐一查找满足连接条件的元组,找到后就将表1中的第二个 元组与该元组拼接起来,形成结果表中一个元组。 ▪ 重复上述操作,直到表1中的全部元组都处理完毕
排序合并法( SORT-MERGE) 常用于=连接 首先按连接属性对表1和表2排序 对表1的第一个元组,从头开始扫描表2,顺序査找满足 连接条件的元组,找到后就将表1中的第一个元组与该 元组拼接起来,形成结果表中一个元组。当遇到表2中 第一条大于表1连接字段值的元组时,对表2的查询不再 继续 An Introduction to Database System
An Introduction to Database System 排序合并法(SORT-MERGE) 常用于=连接 ▪ 首先按连接属性对表1和表2排序 ▪ 对表1的第一个元组,从头开始扫描表2,顺序查找满足 连接条件的元组,找到后就将表1中的第一个元组与该 元组拼接起来,形成结果表中一个元组。当遇到表2中 第一条大于表1连接字段值的元组时,对表2的查询不再 继续
排序合并法 找到表1的第二条元组,然后从刚才的中断点处继续顺 序扫描表2,査找满足连接条件的元组,找到后就将表1 中的第一个元组与该元组拼接起来,形成结果表中一个 元组。直接遇到表2中大于表1连接字段值的元组时,对 表2的查询不再继续 重复上述操作,直到表1或表2中的全部元组都处理完毕 为止 An Introduction to Database System
An Introduction to Database System 排序合并法 ▪ 找到表1的第二条元组,然后从刚才的中断点处继续顺 序扫描表2,查找满足连接条件的元组,找到后就将表1 中的第一个元组与该元组拼接起来,形成结果表中一个 元组。直接遇到表2中大于表1连接字段值的元组时,对 表2的查询不再继续 ▪ 重复上述操作,直到表1或表2中的全部元组都处理完毕 为止
索引连接(NDEX~JON)( 对表2按连接字段建立索引 对表1中的每个元组,依次根据其连接字段值查询 表2的索引,从中找到满足条件的元组,找到后就 将表1中的第一个元组与该元组拼接起来,形成结 果表中一个元组 An Introduction to Database System
An Introduction to Database System 索引连接(INDEX-JOIN) ▪ 对表2按连接字段建立索引 ▪ 对表1中的每个元组,依次根据其连接字段值查询 表2的索引,从中找到满足条件的元组,找到后就 将表1中的第一个元组与该元组拼接起来,形成结 果表中一个元组
连接查询(续) 等值与非等值连接查询 、自身连接 三、外连接 四、复合条件连接 An Introduction to Database System
An Introduction to Database System 连接查询(续) 一、等值与非等值连接查询 二、自身连接 三、外连接 四、复合条件连接
、等值与非等值连接查询 等值连接:连接运算符为= [例33]査询每个学生及其选修课程的情况 SELECT Student. * SC. FROM Student, SC WHERE Student sno SC sno An Introduction to Database System
An Introduction to Database System 一、等值与非等值连接查询 ❖等值连接:连接运算符为= [例33] 查询每个学生及其选修课程的情况 SELECT Student.* ,SC.* FROM Student,SC WHERE Student.Sno = SC.Sno;
等值与非等值连接查询(续)( 查询结果: Student Sno Sname Ssex Sage Sdept SC Sno Cno Grade 200215121李勇男20CS2002151211 92 200215121李勇男20CS2002151212 85 200215121李勇男20CS2002151213 88 200215122刘晨女19CS2002151222 90 200215122刘晨女19CS2002151223 80 An Introduction to Database System
An Introduction to Database System 等值与非等值连接查询(续) Student.Sno Sname Ssex Sage Sdept SC.Sno Cno Grade 200215121 李勇 男 20 CS 200215121 1 92 200215121 李勇 男 20 CS 200215121 2 85 200215121 李勇 男 20 CS 200215121 3 88 200215122 刘晨 女 19 CS 200215122 2 90 200215122 刘晨 女 19 CS 200215122 3 80 查询结果: