`

oracle中表的左外连接,右外连接,全外连接(转)

阅读更多
oracle中表的左外连接,右外连接,全外连接



create table employees(
last_name varchar2(20),
department_id number(6)
)
/

insert into employees(last_name,department_id)
values('eygle',1);
insert into employees(last_name,department_id)
values('bity_rainy',2);
insert into employees(last_name,department_id)
values('piner',3);
insert into employees(last_name,department_id)
values('coolyl',5);

create table departments(
department_id number(6),
department_name varchar2(20)
)
/
insert into departments(department_id,department_name)
values(1,'alibaba');
insert into departments(department_id,department_name)
values(2,'oracle');
insert into departments(department_id,department_name)
values(3,'ibm');
insert into departments(department_id,department_name)
values(4,'sun');


---1. 普通的相等连接
select e.last_name, d.department_name
from employees e, departments d
where e.department_id = d.department_id;

---2 左外连接 LEFT OUTER JOIN
select e.last_name,e.department_id,d.department_name
from employees e
left outer join departments d
on (e.department_id = d.department_id);

select e.last_name, d.department_name
from employees e, departments d
where e.department_id = d.department_id(+);
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。


----3. 右外连接 right outer join
select e.last_name,e.department_id,d.department_name
from employees e
right outer join departments d
on (e.department_id = d.department_id);

select e.last_name, d.department_id,d.department_name
from employees e, departments d
where e.department_id(+) = d.department_id;
结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。

----4.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的员工记录和没有任何员工的部门记录。

分享到:
评论

相关推荐

    oracle 左连接 右连接学习

    左连接是一种外连接,它返回左表中的所有记录,并将右表中的记录匹配到左表中。如果右表中没有匹配的记录,将以 null 值代替。例如: SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name ...

    oracle数据库表左连接右连接全连接的认识

    左连接和右连接的区别在于基准表的选择,左连接将左边的表作为基准表,全表数据都要显示,而右连接将右边的表作为基准表,全表数据都要显示。例如: `SELECT e.empno, e.ename, d.dname FROM emp e LEFT JOIN dept ...

    Oracle 左连接、右连接

    左连接返回左表(即在JOIN语句中位于LEFT JOIN关键字之前的表)的所有记录,即使在右表中没有匹配的记录。对于那些在右表中没有匹配的左表记录,结果集将显示为NULL。这种类型的连接通常用于保留所有左表数据,同时...

    Oracle左连接,右连接.doc

    右连接也称为右外连接,它会返回右表的所有行,并且只返回左表中与右表匹配的行。如果左表中没有匹配的行,则会填充NULL值。 **语法示例:** ```sql SELECT a.studentno, a.studentname, b.classname FROM ...

    oracle数据库 左连接 右连接 自连接 。。

    左连接返回左表(也就是连接操作中指定的第一个表)的所有记录,以及与之匹配的右表记录。如果右表中没有匹配的记录,结果将显示左表记录和右表的NULL值。这种连接类型对于保留左表所有数据,即使在右表中没有对应...

    Oracle左(外)、右(外)、全(外)、(内)连接语法与SQL标准的比较

    全(外)连接返回左表和右表中所有记录,包括没有匹配的记录,对于没有匹配的记录,另一侧的字段将显示为NULL。 ```sql SELECT * FROM A FULL JOIN B ON A.id = B.id; ``` #### Oracle SQL语法 Oracle实现全(外)连接...

    理解oracle中的外连接

    右外连接与左外连接相反,返回右表的所有记录,即使在左表中没有匹配的记录。左表中没有匹配项时,结果集中的相应列将填充为NULL。这在需要查看右边数据源完整信息时很有用。 语法示例: ```sql SELECT columns ...

    oracle左右连接方法

    左连接是一种返回所有左表记录的连接类型,即使在右表中没有匹配项也会返回左表的所有记录。对于那些在右表中没有匹配项的左表记录,其对应的右表字段将被填充为NULL值。 #### 示例 假设我们有两个表:表A和表B,...

    Oracle数据库左外连接

    Oracle连接有多中,我是在平常开发项目过程中用到的Oracle左连接进行了简单的阐述。

    SQL之左连接、右连接和全连接.doc

    右连接也称为右外连接,用于从右侧表中检索记录,返回右侧表中的所有记录,并将左侧表中的匹配记录附加到右侧表中。如果左侧表中没有匹配记录,将返回空值。右连接的基本语法为: SELECT * FROM 左侧表 RIGHT JOIN ...

    Oracle中表的四种连接方式讲解

    本文主要探讨了四种基本的连接方式:相等连接、外连接(包括左外连接和右外连接)、不等连接和自连接。 1. 相等连接: 相等连接是最基础的连接类型,它基于两个表中相同意义的列之间的相等条件。例如,在查询员工...

    oracle多表连接技巧

    右外连接与左外连接相反,它返回右表的所有行以及左表中满足连接条件的行。如果左表没有匹配的行,则会显示为NULL。 **示例**: ```sql SELECT * FROM emp e RIGHT JOIN dept d ON e.deptno = d.deptno; ``` 或 ```...

    关于Oracle多表连接,提高效率,性能优化操作

    这是因为ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询..数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能性...

    Oracle多表连接练习

    Oracle数据库中的多表连接是数据库查询中的核心技巧,它允许我们从多个相关的表中获取信息。在本实验中,我们将通过一系列练习题来深入理解Oracle的多表连接操作。 1. 第一个练习展示了如何通过内连接(INNER JOIN...

    Oracle左右连接及一些练习资料

    左连接是一种SQL联接类型,它返回左表的所有记录,即使右表中没有匹配的记录。如果右表中没有匹配的记录,结果将显示为NULL。与内连接(Inner Join)不同,内连接只返回两个表中存在匹配的记录。在Oracle SQL中,左...

    Oracle外连接查询

    与左外连接相反,右外连接返回右表的所有记录,即使在左表中没有匹配的记录。等价的旧式写法是将`(+)`符号放置在等于号的右侧,如`SELECT e.last_name, e.department_id, d.department_name FROM employees e, ...

    Oracle中的外连接

    2. 右外连接(RIGHT JOIN):与左外连接相反,返回右表的所有记录,以及左表中与之匹配的记录。如果左表中没有匹配的记录,则显示右表的所有列,并用NULL填充左表的列。 3. 全外连接(FULL OUTER JOIN):返回两个表...

Global site tag (gtag.js) - Google Analytics