zoukankan      html  css  js  c++  java
  • Oracle 内连接和外连接

    内连接用于返回满足连接条件的记录;而外连接则是内连接的扩展,它不仅会返回满足连接条件的所有记录,而且还会返回满足不满足连接条件的记录!从Oracle9i开始,可以在From 子句中指定连接语法。语法如下:

     SELECT table.column,table.column2 FROM table1 [INNER|LEFT|RIGHT|FULL] JOIN table2 ON table.column1=table.column2;

    INNER JOIN表示内连接,LEFT JOIN 表示左外连接,RIGHT JOIN表示右外连接,FULL JOIN表示完全外连接;ON 子句用于指定连接条件!

    下面我们来看下这些所谓的连接吧!

    1.内连接

       内连接用于返回满足连接条件的所有记录。默认情况下,在执行连接查询时如果没有指定任何连接操作符,那么这些连接查询属于内连接。 下面以显示部门10的部门名及其雇员名为例,说明使用内连接的方法。示例如下:

    SQL> select a.dname ,b.ename from dept a ,emp b where a.deptno=b.deptno and a.deptno=10;
     
    DNAME          ENAME
    -------------- ----------
    ACCOUNTING     CLARK
    ACCOUNTING     KING
    ACCOUNTING     MILLER

    工作中用这种连接查询很多,其实我一直不知道这就是内连接,在我的印象里面,用INNER JOIN连接语法的才是内连接,想想都可笑啊!

    所以在执行连接查询时,通过在FROM子句中指定INNER JOIN选项,也可以指定内连接,这是一种显示表示内连接的方式。示例如下:

    SQL> select a.dname,b.ename from dept a inner join emp b on a.deptno=b.deptno and a.deptno=10;
     
    DNAME          ENAME
    -------------- ----------
    ACCOUNTING     CLARK
    ACCOUNTING     KING
    ACCOUNTING     MILLER


     还有一种方式的内连接,不过我到现在也不怎么用到,这是从Oracle 9i开始执行的,如果主表的主键列和从表的外部键列名称相同,那么还可以使用NATURAL JOIN关键字自动执行内连接操作,示例如下:

    SQL> select dname ,ename from dept natural join emp;
     
    DNAME          ENAME
    -------------- ----------
    RESEARCH       SMITH
    SALES          ALLEN
    SALES          WARD
    RESEARCH       JONES
    SALES          MARTIN
    SALES          BLAKE
    ACCOUNTING     CLARK
    RESEARCH       SCOTT
    ACCOUNTING     KING
    SALES          TURNER
    RESEARCH       ADAMS
    SALES          JAMES
    RESEARCH       FORD
    ACCOUNTING     MILLER
     
    14 rows selected


    2.左外连接

    左外连接是通过指定 LEFT [OUTER] JOIN选项来实现的.当使用左外连接时,不仅会返回满足连接条件的所有记录,而且还会返回不满足连接条件的连接操作符左边表的其他行。下面以显示部门10的部门名、雇员名,以及其他部门名为例:

    SQL> select a.dname,b.ename from dept a left join emp b on a.deptno=b.deptno and a.deptno=10;
     
    DNAME          ENAME
    -------------- ----------
    SALES          
    ACCOUNTING     CLARK
    ACCOUNTING     KING
    ACCOUNTING     MILLER
    RESEARCH       
    SALES          
    OPERATIONS  

    右外连接、全外连接和左外连接很相似,就不多说了!
     

  • 相关阅读:
    从安装.net Core 到helloWord(Mac上)
    阿里云-对象储存OSS
    图片处理
    项目中 添加 swift代码 真机调试 错误
    iOS面试总结
    IOS APP配置.plist汇总
    cocoapods安装问题
    iOS8使用UIVisualEffectView实现模糊效果
    ios键盘回收终极版
    ?C++ 缺少参数的默认参数
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300411.html
Copyright © 2011-2022 走看看