在關係代數中,連接運算是由一個笛卡爾積運算和一個選取運算構成的。連接的全部意義在於在水平方向上合併兩個數據集合(通常是表)。下面是幾種常用的連接類型:
連接類型 | 定義 | 圖示 | 例子 |
內連接 | 只連接匹配的行 | select A.c1,B.c2 from A join B on A.c3 = B.c3; | |
左外連接 | 包含左邊表的全部行(不管右邊的表中是否存在與它們匹配的行)以及右邊表中全部匹配的行 | select A.c1,B.c2 from A left join B on A.c3 = B.c3; | |
右外連接 | 包含右邊表的全部行(不管左邊的表中是否存在與它們匹配的行)以及左邊表中全部匹配的行 | select A.c1,B.c2 from A right join B on A.c3 = B.c3; | |
全外連接 | 包含左、右兩個表的全部行,不管在另一邊的表中是否存在與它們匹配的行 | select A.c1,B.c2 from A full join B on A.c3 = B.c3; | |
(theta)連接 | 使用等值以外的條件來匹配左、右兩個表中的行 | select A.c1,B.c2 from A join B on A.c3 != B.c3; | |
交叉連接 | 生成笛卡爾積——它不使用任何匹配或者選取條件,而是直接將一個數據源中的每個行與另一個數據源的每個行一一匹配 | select A.c1,B.c2 from A,B; |