- 1、本文档共79页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库系统5版2016chp032讲述
An Introduction to Database System
山东科技大学信息学院
数据库系统概论
An Introduction to Database System
第三章 关系数据库标准语言SQL (续1)
An Introduction to Database System
3.4 数据查询
3.4.1 单表查询
3.4.2 连接查询
3.4.3 嵌套查询
3.4.4 集合查询
3.4.5基于派生表的查询
3.4.6 Select语句的一般形式
An Introduction to Database System
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
一、等值与非等值连接查询
例1:查询学生的选课情况
SELECT Student.*, SC.*
FROM Student, SC
WHERE Student.Sno=SC.Sno;
例1-1:查询学生的选课情况
SELECT Student.Sno, Sname,SC.Cno,Grade
FROM Student, SC
WHERE Student.Sno=SC.Sno;
Student ∞ SC
ПStudent.Sno,Sname,Cno,Grade(Student ∞ SC)
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
查询结果:
An Introduction to Database System
连接操作的执行过程
嵌套循环法(NESTED-LOOP)
首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找满足连接件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。
表2全部查找完后,再找表1中第二个元组,然后再从头开始扫描表2,逐一查找满足连接条件的元组,找到后就将表1中的第二个元组与该元组拼接起来,形成结果表中一个元组。
重复上述操作,直到表1中的全部元组都处理完毕
An Introduction to Database System
排序合并法(SORT-MERGE)
排序合并法(SORT-MERGE)
常用于=连接
首先按连接属性对表1和表2排序
对表1的第一个元组,从头开始扫描表2,顺序查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。当遇到表2中第一条大于表1连接字段值的元组时,对表2的查询不再继续
An Introduction to Database System
排序合并法
找到表1的第二条元组,然后从刚才的中断点处继续顺序扫描表2,查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。直接遇到表2中大于表1连接字段值的元组时,对表2的查询不再继续
重复上述操作,直到表1或表2中的全部元组都处理完毕为止
An Introduction to Database System
索引连接(INDEX-JOIN)
索引连接(INDEX-JOIN)
对表2按连接字段建立索引
对表1中的每个元组,依次根据其连接字段值查询表2的索引,从中找到满足条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组
An Introduction to Database System
连接
例2:?
SELECT Student.*, SC.*
FROM Student, SC;
Student × SC
An Intr
文档评论(0)