文档介绍:数据库系统概论
An Introduction to Database System
第三章关系数据库标准语言SQL (续1)
An Introduction to Database System
查询
单表查询
连接查询
嵌套查询
集合查询
SELECT语句的一般格式
An Introduction to Database System
连接查询
同时涉及多个表的查询称为连接查询
用来连接两个表的条件称为连接条件或连接谓词
一般格式:
[<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2>
比较运算符:=、>、<、>=、<=、!=
[<表名1>.]<列名1> BETWEEN [<表名2>.]<列名2> AND [<表名2>.]<列名3>
An Introduction to Database System
连接查询(续)
连接字段
连接谓词中的列名称为连接字段
连接条件中的各连接字段类型必须是可比的,但不必是相同的
An Introduction to Database System
连接操作的执行过程
嵌套循环法(NESTED-LOOP)
首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找满足连接件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。
表2全部查找完后,再找表1中第二个元组,然后再从头开始扫描表2,逐一查找满足连接条件的元组,找到后就将表1中的第二个元组与该元组拼接起来,形成结果表中一个元组。
重复上述操作,直到表1中的全部元组都处理完毕
An Introduction to Database System
索引连接(INDEX-JOIN)
对表2按连接字段建立索引
对表1中的每个元组,依次根据其连接字段值查询表2的索引,从中找到满足条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组
An Introduction to Database System
连接查询(续)
SQL中连接查询的主要类型
广义笛卡尔积
等值连接(含自然连接)
自身连接查询
外连接查询
复合条件连接查询
An Introduction to Database System
一、广义笛卡尔积
很少使用
例:
SELECT Student.* , SC.*
FROM Student, SC
An Introduction to Database System