Oracle中表的四种连接方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中表的四种连接方式相关的知识,希望对你有一定的参考价值。

参考技术A 左连接:left join 、右连接:right join 、内连接:inner join 、交叉连接 参考技术B http://m.baidu.com/from=1505i/bd_page_type=1/ssid=0/uid=F1EFCB48CA371F7D781D6796EE7142C2/pu=usm@0,sz@1320_1003,ta@utouch_2_4.1_1_/baiduid=8ABC539043D2BAAFEDA1430031B598FD/w=0_10_Oracle 表四种连接方式/t=wap/tc?ref=www_utouch&lid=8196726946421703579&tj=wenkuala_1_0_10_title&waplogo=1&order=1&vit=osres&sec=31126&di=97deafa165c7654c&bdenc=1&nsrc=X980QwEptyoA_yixCFOxXnANedT62v3IER3PLjkK1De8mVjte4viZQRAVDbqRzrIBZClbT4Lq1pUwX8u2zQejxRAfas8gWIeiG36s_Go

Oracle的四种连接方式转载

我们以Oracle自带的表来做例子

主要两张表:dept、emp

一个是部门,一个是员工表结构如下:

emp
name null? Type
Empno not null number(4)
ename   varchar2(10)
job   varchar2(9)
mgr   number(4)
hiredate   date
sal   number(7,2)
comm   number(7,2)
deptno   number(2)
dept
name null? Type
deptno not null number(2)
dname   varchar2(14)
log   varchar2(13)

这两张表 dept是主表 emp是子表,关联的列是deptno
dept表现有数据

 
 
 
emp表现有数据
 

 
 
inner join 意思是内连接 把匹配的信息全部查出来
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname 
from emp e innerjoin dept d on e.deptno=d.deptno orderby e.empno;
查询的结果:
 
left join 左连接 意思是包含左边表所有记录,右边所有的匹配的记录,如果没有则用空补齐
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname 
from emp e leftjoin dept d on e.deptno=d.deptno orderby e.empno;
解释SQL :这条SQL语句左边是EMP表 左连接结果查询出EMP所有的记录,然后根据左边表匹配出右边表DEPT所有的记录
 
查询结果如下: 
 
 
right join 右连接  意思是包括右边表所有记录,匹配左边表的记录,如果没有则以空补齐

SQL>select e.empno,e.ename,e.job,d.deptno,d.dname
from emp e rightjoin dept d on e.deptno=d.deptno orderby e.empno;
解释SQL:这条SQL语句EMP在左边,DEPT在右边,然后我们采用右连接,就查出右边表所有的数据
 
查询结构:
 
full join  全连接 意思是左右表所有的记录全部显示出来
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname
from emp e fulljoin dept d on e.deptno=d.deptno orderby e.empno;

解释SQL:这条SQL语句采用全连接,查询出左表和右表所有的值出来
查询结果:
 
 
介绍Oracle +连接方式及说明
 
+在左边 为右连接
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname 
from emp e,dept d where e.deptno(+)=d.deptno orderby e.empno; 
查询结果:
 
+在右边 为左连接
SQL>select e.empno,e.ename,e.job,d.deptno,d.dname from emp e,dept d where e.deptno=d.deptno(+) orderby e.empno;
 
查询结果:
 

以上是关于Oracle中表的四种连接方式的主要内容,如果未能解决你的问题,请参考以下文章

Oracle连接远程数据库的四种方法

Spring框架中获取连接池常用的四种方式

快速理解 VirtualBox 的四种网络连接方式

快速理解VirtualBox的四种网络连接方式

SparkSQL四种连接Hive的方法

python中字符串连接的四种方式