Oralce中各种连接的使用

本文详细介绍了SQL中的连接查询,包括内连接、外连接、左外连接、右外连接及全外连接的概念和使用方法,并通过具体示例进行说明。

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

在这里说说最常用的几种连接的使用:内连接,外连接 ,左外连接,右外连接
以上几种连接一般用于多表之间复杂的查询,
 下面先说说内连接,也即相等连接,如右两张表 dept ,employee,
dept里有字段deptid,deptname,employee有字段empno,deptid,ename,sal,age等
那连接查询语句如下:select A.* ,B.* from dept A,employee B where A.deptid=B.deptid
一般出现这种情况的是一张是主表,另一张是子表,主表的主键作为子表的外键,显示结果按照子表的显示, 内连接简单,这里就不多说了
 外连接在oralce里用(+)表示,先看例子
select empno,ename,sal,emp.deptno,dept.deptno from emp,dept where emp.deptno(+) =dept.deptno
这是一个右连接
看下面的例子
select empno,ename,sal,emp.deptno,dept.deptno from emp,dept where dept.no=emp.deptno(+)
这是一个左连接
两个查询显示的查询结果是一样的,刚开始学oracle的时候很多人都很难明白这个,现在有个笨办法,
大家不防记下来,(+)出现查询条件的左边即右连接,出现在右边即左连接。(+)可以放在左边也可以
放在右边,但是一定要放在缺少条件的那一边,如上面的例子中,如果公司最近准备成立一个新的部门,
测试部门,但现在还没有招新员工,而现在Boss想知道公司有知道公司的员工在那个部门并且想知道
没有员工的部门,我们可以用上面的查询语句实现。
左外连接(left outer join)和右外连接(reght outer join)如同上面的外连接,查询的结果是一样的。
左外连接:select empno,ename,sal,emp.deptno,dept.deptno from dept left outer join emp on (emp.deptno=dept.deptno)
右外连接:select empno,ename,sal,emp.deptno,dept.deptno from emp reight outer join dept on (emp.deptno=dept.deptno)
以上显示的结果和外连接查询出来的结果是一样的 ,只是写法不一样而已,实际工作中外连接用的比较多,没有必要都要去用它,但是概念大家一定要了解。
全外关联 :FULL OUTER JOIN
SELECT e.last_name, e.department_id, d.department_name 
FROM employees e 
FULL OUTER JOIN departments d 
ON (e.department_id = d.department_id); 
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值