l 基本分类
– 连接成分
包括两个输入关系、连接条件、连接类型
– 连接条件
决定两个关系中哪些元组相互匹配,以及连接结果中出现哪些属性
– 连接类型
决定如何处理与连接条件不匹配的元组
连接类型 | 连接条件 |
inner join left outer join right outer join full outer join |
nature on <谓词> using (A1, A2 ,…, An) |
– 自然连接
l 出现在结果关系中的两个连接关系的元组在公共属性上取值相等,且公共属性只出现一次
– on <谓词P>
l 出现在结果关系中的两个连接关系的元组在公共属性上取值满足谓词条件P,且公共属性出现两次
– using (A1, A2 ,…, An)
l (A1, A2 ,…, An)是两个连接关系的公共属性的子集,元组在(A1, A2 ,…, An)上取值相等,且(A1, A2 ,…, An)只出现一次
– 内连接
l 舍弃不匹配的元组
– 左外连接
l 内连接+左边失配的元组(缺少的右边关系属性用null)
– 右外连接
l 内连接+右边失配的元组(缺少的左边关系属性用null)
– 全外连接
l 内连接 + 左边失配的元组(缺少的右边关系属性用null)+ 右边失配的元组(缺少的左边关系属性用null)
A |
B |
C |
a1 |
b1 |
c1 |
a2 |
b2 |
c2 |
a3 |
b3 |
c3 |
C |
D |
c1 |
d1 |
c2 |
d2 |
c4 |
d4 |
A |
B |
C |
C |
D |
a1 |
b1 |
c1 |
c1 |
d1 |
a2 |
b2 |
c2 |
c2 |
d2 |
A |
B |
C |
C |
D |
a1 |
b1 |
c1 |
c1 |
d1 |
a2 |
b2 |
c2 |
c2 |
d2 |
a3 |
b3 |
c3 |
null |
null |
A |
B |
C |
D |
a1 |
b1 |
c1 |
d1 |
a2 |
b2 |
c2 |
d2 |
null |
null |
null |
d4 |
A |
B |
S.C |
R.C |
D |
a1 |
b1 |
c1 |
c1 |
d1 |
a2 |
b2 |
c2 |
c2 |
d2 |
a3 |
b3 |
c3 |
null |
null |
null |
null |
null |
c4 |
d4 |