ORACLE--关联查询、连接查询

本文详细介绍了Oracle数据库中的关联查询和连接查询。关联查询关注于多表中对应记录的信息,强调连接条件的设置以避免笛卡尔积。连接查询包括内连接、外连接(左、右、全)以及自连接。通过具体的查询示例,阐述了各种连接类型的使用场景和效果,有助于理解数据库查询的复杂性。
摘要由CSDN通过智能技术生成

1 关联查询

从多张表中查询对应记录的信息,关联查询的重点在于这些表中的记录有对应关系(连接条件)

当两张表有同名字段时,select子句中必须明确指定的字段来自于哪张表。

SELECT ename,sal,deptno FROM emp;--员工表
SELECT deptno,dname,loc FROM dept;--部门表
--查看每个员工的名字以及他所在的部门名字?
SELECT emp.ename,dept.dname,dept.deptno FROM emp,dept WHERE emp.deptno=dept.deptno;

在关联查询中,表名也可以加别名,这样可以简化select语句的复杂度,简化语句:

SELECT e.ename,d.deptno,d.dname FROM emp e,dept d WHERE e.deptno=d.deptno;

2 笛卡尔积

关联查询要添加连接条件,否则会发生笛卡尔积。笛卡尔积通常是一个没有意义的结果集,它的记录统计数数结果是所有参与查询的表的记录数乘积,要避免出现,数据量大的时候很容易出现内存溢出现象。
SELECT e.ename,d.dname FROM emp e,dept d ;
emp表中ename有14条记录数,dept表中dname有4条记录数,因此此条查询语句会出现56条记录数。

N张表关联查询至少要有N-1个关联条件

--查看在new york工作的员工
SELECT e.ename,e.deptno,d.loc FROM emp e,dept d WHERE e.deptno = d.deptno AND d.loc=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值