用SQL表达连接与外连接

时间:2022-12-02 12:04:52

关系代数运算中,有连接运算,又分为θ连接和外连接

标准SQL语言中连接运算通常是采用

SELECT 列名[[,列名]...]
FROM 表名1,表名2,...
WHERE 检索条件;

SQL的高级语法中引入了内连接与外连接运算,具体形式:

SELECT 列名[[,列名]...]
FROM 表名1[NATURAL][INNER|{LEFT|RIGHT|FULL}[OUTER]]JOIN 表名2
{ON 连接条件 | USING (Colname{,Colname...})}
[WHERE 检索条件;]

上例的连接运算由两部分构成:连接类型连接条件

连接类型(四选一):inner joinleft outer joinright outer joinfull outer join

连接条件(三选一):naturalon <连接条件>using(Col1,Col2,...,Coln)

  • 连接中使用natural:出现在结果关系中的两个连接关系的元组在公共属性上取值相等,且公共属性只出现一次。

  • 连接中使用 on<连接条件>:(θ连接)出现在结果关系的两个连接关系的元组取值满足连接条件,且公共属性出现两次

  • 连接中使用using(Col1,Col2,...,Coln):(Col1,Col2,...,Coln)是两个连接关系的公共属性子集,元组在(Col1,Col2,...,Coln)上取值相等,且(Col1,Col2,...,Coln)只出现一次