Oracle 外连接 ( 1)左外连接 (左边的表不加限制) ( 2)右外连接(右边的表不加限制) ( 3)全外连接(左右两表都不加限制) 外连接(Outer Join) outer join 则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行
它还返回任何在第二个输入中没有匹配行的第一个输入中的行
外连接分为三种: 左外连接,右外连接,全外连接
对应SQL: LEFT/RIGHT/FULL OUTER JOIN
通常我们省略outer 这个关键字
写成:LEFT/RIGHT/FULL JOIN
在左外连接和右外连接时都会以一张表为基表,该表的内容会全部显示,然后加上两张表匹配的内容
如果基表的数据在另一张表没有记录
那么在相关联的结果集行中列显示为空值(NULL)
对于外连接, 也可以使用“(+) ”来表示
关于使用(+)的一些注意事项: 1
( +)操作符只能出现在where 子句中,并且不能与outer join 语法同时使用
当使用(+)操作符执行外连接时,如果在where 子句中包含有多个条件,则必须在所有条件中都包含(+)操作符 3
( +)操作符只适用于列,而不能用在表达式上
( +)操作符不能与or 和 in 操作符一起使用
( +)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接
在做实验之前,我们先将dave 表和bl 里加一些不同的数据
SQL> select * from bl; ID NAME ---------- ---------- 1 dave 2 bl 3 big bird 4 exc 9 怀宁 SQL> select * from dave; ID NAME ---------- ---------- 8 安庆 1 dave 2 bl 1 bl 2 dave