Oracle多表连接

什么是连接?连接是在多个表之间通过一定得连接条件,使表之间发生关联,进而能从多个表之间获取数据。

连接的类型

  1. 按连接条件分:等值连接、非等值连接

  2. 按其他连接方法分:外部连接、内部连接

1.1等值连接

这里写图片描述
这里写图片描述

1.2非等值连接

这里写图片描述
查询每个员工的姓名,工资,公司等级
这里写图片描述

2.1外部连接

包括左外连接和右外连接
多表连接时,可以使用外部连接来查看哪些行,按照连接条件没有被匹配上。例如查询没有雇员工作的部门
外连接符号是(+)
语法包括:

select table1.column,table2.column
from table1,table2
where table1.column(+)=table2.column

select table1.column,table2.column
from table1,table2
where table1.column=table2.column(+)

外部连接好像是为符号(+)所在的边添加一个“万能”的行,这个行由空值组成。它可以和另一边的表中所有不满足连接条件的行进行连接。由于这个“万能”的行各列全部是空值,因此在连接结果中,“万能”行属性值全部为空。

示例:查询所有雇员姓名,部门编号,部门名称,包括没有员工的部门也要显示出来

    select e.ename,d.deptno,d.dname
    from emp e,dept d
    where e.deptno(+)=d.deptno
    order by e.deptno

2.2自身连接

就是自己和自己连接
示例:找出自己的领导

select worker.ename || 'leader is' || maneger.ename
from emp worker,emp maneger
where worker.mgr=maneger.empno 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值