2. 连接查询
前面的查询都是针对一个表进行的。若一个查询同时涉及两个以上的表,则称之为连接查询。连接查询是关系数据库最主要的查询,包括等值连接查询,自然连接查询,非等值连接查询,自身连接查询,外连接查询和复合条件连接查询等。
(1) 等值与非等值连接查询
连接查询的WHERE子句用来连接两个表的条件称为连接条件或连接谓词,其一般格式为:
[<表名1>]<列名1><比较运算符>[<表名 2>]<列名2>
其中比较运算符主要有:=,<,>,>=,<=,!=(或<>)等。
此外连接谓语还可以使用下面形式:
[<表名1>.]<列名1>BETWEEN[<表名2>.]<列名2>AND[<表名2>.]<列名3>
当连接运算符为“=”时,称为等值连接,若在等值连接中把目标列中重复的属性列去掉则为自然连接。使用其他运算符称为非等值连接。
(2) 自身连接
连接操作是一个表与其自己进行连接,称为表的自身连接。
(3) 外连接
左外连接(LEFT JOIN)列出左边关系中所有的元组,右外连接(RIGHT JOIN)列出右边关系中所有的元组。
(4) 多表连接
连接操作除了可以是两表连接,一个表与其自身连接外,还可以是两个以上的表进行连接,后者通常称为多表连接。
关系数据库管理系统在执行多表连接时,通常是先进行两个表的连接操作,再将其连接结果与第三个表进行连接。