Oracle数据库----------------------多表查询(表的连接)

本文介绍Oracle数据库中的表连接查询方法,包括内连接和外连接(左外连接、右外连接)。通过具体示例展示了如何使用这些连接方式来获取完整的数据记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Oracle数据库的学习记录:

十五、多表查询----表的连接
表的连接主要分为两种形式:
**内连接(等值连接):所有满足条件的数据都会被显示出来
**外连接(左外连接、右外连接、全外连接):控制左表与右表的数据是否全部显示

1.内连接----之前使用的都是等值连接
SELECT e.empno,e.ename,e.job,d.deptno,d.dname,d.loc  FROM emp e,dept d WHERE e.deptno=d.deptno;
2.外连接
让等值判断左右两边有以便的数据可以全部显示出来,如果要想实现外链接,则需要使用"(+)"的语法完成:
**左外链接:字段=字段(+);
**右外连接:字段(+)=字段;
范例:观察左外连接
SELECT e.empno,e.ename,e.job,d.deptno,d.dname,d.loc  FROM emp e,dept d WHERE e.deptno=d.deptno(+);
此时,可以显示全部的雇员信息,但是由于没有对应的部门数据,所以此行记录的部门数据为空
范例:观察右外连接
SELECT e.empno,e.ename,e.job,d.deptno,d.dname,d.loc  FROM emp e,dept d WHERE e.deptno(+)=d.deptno;
发现此时的程序,所有的部门信息会进行显示,但是由于此部门没有雇员,所以雇员的数据为空
在实现外连接的过程中,不建议刻意区分左连接或右连接,一切以数据的查询结果为主,如果发现数据的查询结果之中缺少了内容,那么就利用外连接来控制
范例:查询每个雇员的姓名、职位、领导姓名
确定要使用的数据表
  |-emp表:雇员的姓名、职位
  |-emp表:领导姓名(雇员姓名)
确定已知的关联字段
  |-雇员与领导:emp.mgr=memp.empno;
SELECT e.ename,e.job,m.ename FROM emp e,emp m WHERE e.mgr=m.empno;
发现此时的数据显示不完整,使用外连接
SELECT e.ename,e.job,m.ename FROM emp e,emp m WHERE e.mgr=m.empno(+);
这种自己关联自己的查询,也称为自身关联
有多少张表,就必须消除笛卡尔积的重复数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值