oracle中内连接与外连接的区别及详解

来源:互联网 发布:cnc编程入门教程 编辑:程序博客网 时间:2024/05/22 03:09
内连接

表 1  join   表 2  on   条件


驱动表和匹配表
表 1  join   表 2  on   条件
1)  表 1 叫做驱动表  ,  表 2 叫做匹配表
2)  等值连接方式下  ,  驱动表和匹配表位置可以互换  ,  不影响结果集
执行方式:不论谁做驱动表  ,  都会遍历驱动表  ,  在匹配表中查找匹配数据


 外连接**
1)  左外连接语法结构:  表 1   left outer join     表 2    on   条件
2)  右外连接语法结构:  表 1   right outer join   表 2     on   条件
3)  外连接的特征:
  如果驱动表在匹配表中找不到匹配记录  ,  则匹配一行空行
 外连接的结果集  =  内连接的结果集  +  驱动表在匹配表中匹配不上的记录和空值
 外连接的本质是驱动表中的数据一个都不能少
  left outer join 以左边的表为驱动表
 right outer join 以右边的表为驱动表

   full outer join 全外连接  **
1)  全外连接可以把两个表中的记录全部查出来
2)  全外连接的结果集  =  内连接的结果集  +
驱动表中在匹配表中找不到匹配记录的数据和 null 值  + 
匹配表中在驱动表中找不到匹配记录的数据和 null 值
3)  驱动表和匹配表可以互换


小结外连接
1)  外连接的结果集  =  内连接的结果集  +  驱动表在匹配表中找不到匹配记录的数据和空值
2)  驱动表和匹配表不能互换
3)  写外连接的方式:
a)  先写内连接
b)  使用 left 戒 right 不重要  ,  关键是确定谁做驱动表  ,