交叉连接和全连接

全外连接是在结果中除了显示满足连接的条件的行外,还显示了join两侧表中所有满足检索条件的行。
SQL> select e.empno,e.ename,e.sal,d.grade
  2  from emp e full outer join salgrade d
  3  on e.sal between d.losal and d.hisal;
     EMPNO ENAME             SAL      GRADE
---------- ---------- ---------- ----------
      7839 KING             5000          5
      7902 FORD             3000          4
      7788 SCOTT            3000          4
      7566 JONES            2975          4
      7698 BLAKE            2850          4
      7782 CLARK            2450          4
      7499 ALLEN            1600          3
      7844 TURNER           1500          3
      7934 MILLER           1300          2
      7521 WARD             1250          2
      7654 MARTIN           1250          2
      7876 ADAMS            1100          1
      7900 JAMES             950          1
      7369 SMITH             800          1
      7937 Candy             500                                                                                                 6 
       
上面的结果中
      7937 Candy             500                                                       
这一条数据没有对应的工资等级,
                                          6 
这条数据没有对应的员工信息,右外连接




交叉连接
    使用cross joi实现交叉连接,可以将两个表的交叉连接,所得到的结果是将这两个表中各行数据的所有的组合,即这两个表所有数据行的笛卡儿积。
    交叉连接与简单连接操作非常相似,不同的是,使用交叉连接时,在from子句中多个表名之间不是逗号,而是使用cross join关键字隔开。令外,在交叉连接中不需要使用关键字on限定连接条件,但是可以添加where子句设置连接条件。
SQL> select empno,ename,e.deptno,d.deptno
  2  from emp e cross join dept d;
     EMPNO ENAME          DEPTNO     DEPTNO
---------- ---------- ---------- ----------
      7369 SMITH              20         10
      7499 ALLEN              30         10
      7521 WARD               30         10
      7566 JONES              20         10
      7654 MARTIN             30         10
      7698 BLAKE              30         10
      7782 CLARK              10         10
      7788 SCOTT              20         10
      7839 KING               10         10
      7844 TURNER             30         10
      7876 ADAMS              20         10
      7900 JAMES              30         10
      7902 FORD               20         10
      7934 MILLER             10         10
      7937 Candy                         10
      7369 SMITH              20         20
      7499 ALLEN              30         20
      7521 WARD               30         20
      7566 JONES              20         20
      7654 MARTIN             30         20
      7698 BLAKE              30         20
      7782 CLARK              10         20
      7788 SCOTT              20         20
      7839 KING               10         20
      7844 TURNER             30         20
      7876 ADAMS              20         20
      7900 JAMES              30         20
      7902 FORD               20         20
      7934 MILLER             10         20
      7937 Candy                         20
      7369 SMITH              20         30
      7499 ALLEN              30         30
      7521 WARD               30         30
      7566 JONES              20         30
      7654 MARTIN             30         30
      7698 BLAKE              30         30
      7782 CLARK              10         30
      7788 SCOTT              20         30
      7839 KING               10         30
      7844 TURNER             30         30
      7876 ADAMS              20         30
      7900 JAMES              30         30
      7902 FORD               20         30
      7934 MILLER             10         30
      7937 Candy                         30
      7369 SMITH              20         40
      7499 ALLEN              30         40
      7521 WARD               30         40
      7566 JONES              20         40
      7654 MARTIN             30         40
      7698 BLAKE              30         40
      7782 CLARK              10         40
      7788 SCOTT              20         40
      7839 KING               10         40
      7844 TURNER             30         40
      7876 ADAMS              20         40
      7900 JAMES              30         40
      7902 FORD               20         40
      7934 MILLER             10         40
      7937 Candy                         40
已选择 60 行。
//交叉连接如果不使用任何的条件限制的话,将得到的是数据的笛卡儿积,也就是每个表中的数据与另一个表中的数据的所有的组合。
SQL> select empno,ename,e.deptno,d.deptno
  2  from emp e cross join dept d
  3  where d.deptno=10
  4  and e.deptno=10;
     EMPNO ENAME          DEPTNO     DEPTNO
---------- ---------- ---------- ----------
      7782 CLARK              10         10
      7839 KING               10         10
      7934 MILLER             10         10
//对两个表中的deptno进行限制











































你可能感兴趣的:(交叉连接,全连接,交叉连接和全连接)