ORACLE表关联

内连接(inner_cross_join)

ORACLE表关联_第1张图片


INNER_JOIN :

内连接即关联多张表时根据连接条件筛选符合条件的数据(书写时可以省略inner关键字)

ORACLE表关联_第2张图片


外连接(outer_join)

ORACLE表关联_第3张图片


在外连接中又分为三类,主要有左外连接(left_outer_join)、右外连接(right_outer_join)、全外连接(full_outer_join):

 ORACLE表关联_第4张图片

LEFT_OUTER_JOIN/LEFT_JOIN:

左外连接在多表关联时根据关联条件匹配符合条件的数据,左表的数据会全匹配,而在右表中无法匹配的数据则显示NULL

ORACLE表关联_第5张图片

RIGHT_OUTER_JOIN/RIGHT_JOIN:

右外连接与左外连接相反,即右表数据全匹配,左表数据无法匹配则为NULL

ORACLE表关联_第6张图片

FULL_OUTER_JOIN/FULL_JOIN:

全外连接则显示所有的不管是否能关联上的数据,没匹配上的为NULL

除此之外外连接还可以用(+)来表示

select ename,sal,dname from emp a left join  dept b on a.deptno=b.deptno;
等价于
select ename,sal,dname from emp a,dept b where a.deptno=b.deptno(+);

自连接:

自连接即将单一的表用别名区别当作两张表来关联

NATURAL JOIN:

自然连接是一种特殊的等值连接,它会删除关联表的重复列

CROSS_JOIN:

交叉连接,连接生成两张表的笛卡儿积。返回的记录数等于两张表相乘,将两张表的数据相互连接。

USING子句

  • USING子句只能用于等值连接
  • USING要求关联字段名相同
  • USING和natural join冲突



你可能感兴趣的:(PL/SQL)