Oracle的内外连接

Oracle查询的连接分三种:

  1. 内连接(自然连接)

  2. 外连接

    2.1左外连接

    2.2右外连接

    2.3完全外连接

  3.  自连接


  1. 内连接
   –连接的多表必须有公共列(相等连接)
   –通过INNER JOIN语法实现
   –语法:
  SELECT   tab_name1.col_name, tab_name2.col_name
  FROM tab_name1 INNER JOIN tab_name2
  ON tab_name1.col = tab_name2.col

  其中col是两表的公共列

  其效果等同于:

  SELECT   tab_name1.col_name, tab_name2.col_name
  FROM tab_name1, tab_name2
  WHERE tab_name1.col = tab_name2.col

 2.  外连接
  2.1 左外连接(LEFT JOIN)
  –返回满足连接条件的所有行,而且还会返回不满足连接条件的连接操作符的左边表的其他行,即左边的表会全部显示出来
  –语法:
  Select  d.dname, e.ename  
     from dept d  left  join  emp  e
    on  d.deptno = e.deptno and  d.deptno = 10;

  或这样写:
  select  d.dname, e.ename  
  from dept d ,emp  e
  where d.deptno = e.deptno(+) and  d.deptno = 10;


  结果如下:


 2.2 右外连接(RIGHT JOIN)
  –返回满足连接条件的所有行,而且还会返回不满足连接条件的连接操作符的右边表的其他行,即右边的表会全部显示出来
  –语法:
  Select  d.dname, e.ename  
  from dept  d  right  join  emp  e
  on  d.deptno = e.deptno and  d.deptno = 10;


  或这样写:
  select  d.dname, e.ename  
  from dept  d, emp  e
  where  d.deptno(+) = e.deptno and  d.deptno = 10;


  结果如下:


 2.3 完全外连接(FULL JOIN)
  –不仅返回满足连接条件的所有行,而且还会返回不满足连接条件的所有行
  –语法:
  select  d.dname, e.ename  
  from dept  d  full  join  emp  e
  on  d.deptno = e.deptno and  d.deptno = 10;



 3. 自连接
  –同一张表之间的连接查询
  –主要用于在参照表上显示上下级关系或层次关系
  –语法:
  select t1.col_name, t2.col_name
  from table1 t1 inner join table1 t2 
  on t1.col_name = t2.col_name

  (*^__^*) 嘻嘻……学习进步~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值