`

Oracle数据关联查询

 
阅读更多

来源:赛迪网作者:Alizze


关联在Oracle数据查询时会经常用到,灵活的应用关联可以解决很多实际应用的问题.下面给出一些示例:

建表

<ccid_nobr></ccid_nobr>
<ccid_code>create table ab<br>(<br>ab_id  number(5),<br>ab_name varchar2(30)<br>);<br><br>create table bb<br>(<br>bb_id  number(5),<br>bb_name varchar2(30)<br>);</ccid_code>

插入数据

<ccid_nobr></ccid_nobr>
<ccid_code>insert into ab(ab_id,ab_name) values(1,'1ab_name');<br>insert into ab(ab_id,ab_name) values(2,'2ab_name');<br>insert into ab(ab_id,ab_name) values(3,'3ab_name');<br><br>insert into bb(bb_id,bb_name) values(1,'1bb_name');<br>insert into bb(bb_id,bb_name) values(2,'2bb_name');<br>insert into bb(bb_id,bb_name) values(4,'4bb_name');<br>insert into bb(bb_id,bb_name) values(6,'6bb_name');</ccid_code>

等值关联(全关联)

<ccid_nobr></ccid_nobr>
<ccid_code>select a.ab_id,a.ab_name,b.bb_name from ab a,<br>              bb b<br>where a.ab_id=b.bb_id;</ccid_code>

返回结果

<ccid_nobr></ccid_nobr>
<ccid_code>AB_ID AB_NAME BB_NAME<br>1 1ab_name 1bb_name<br>2 2ab_name 2bb_name</ccid_code>

返回两个表中所有能匹配的记录,不能匹配的记录不返回。

左关联

<ccid_nobr></ccid_nobr>
<ccid_code>select ab_id,ab_name, bb_name <br>from ab a left join  bb b<br>on a.ab_id=b.bb_id;<br>同<br>select ab_id,ab_name, bb_name <br>from ab a , bb b<br>where a.ab_id=b.bb_id(+);</ccid_code>

返回结果

<ccid_nobr></ccid_nobr>
<ccid_code>AB_ID AB_NAME BB_NAME<br>1 1ab_name 1bb_name<br>2 2ab_name 2bb_name<br>3 3ab_name</ccid_code>

返回左边表的左右记录,在右边表中没有对应记录的右表字段显示为空。

右关联

<ccid_nobr></ccid_nobr>
<ccid_code>select ab_id,ab_name, bb_name <br>from ab a right join  bb b<br>on a.ab_id=b.bb_id;<br>同<br>select ab_id,ab_name, bb_name <br>from ab a , bb b<br>where a.ab_id(+)=b.bb_id;</ccid_code>

返回结果:

<ccid_nobr></ccid_nobr>
<ccid_code>AB_ID AB_NAME BB_NAME<br>1 1ab_name 1bb_name<br>2 2ab_name 2bb_name<br>4bb_name<br>6bb_name</ccid_code>

返回右边表中所有的记录,在右边表不能匹配的记录行上,左边表对应的字段显示为空。

完全外关联

<ccid_nobr></ccid_nobr>
<ccid_code>select ab_id,ab_name, bb_name <br>from ab a full join  bb b<br>on a.ab_id=b.bb_id;</ccid_code>

返回结果

<ccid_nobr></ccid_nobr>
<ccid_code>AB_ID AB_NAME BB_NAME<br>1 1ab_name 1bb_name<br>2 2ab_name 2bb_name<br>3 3ab_name <br>6bb_name<br>4bb_name</ccid_code>

返回两个表所有的结果,如果在关联条件上没有对应的记录,那么将在该列上显示为空。

全关联返回的结果集范围最小。完全外关联返回的结果范围最大,是否左关联和右关联并集;全关联是左关联和右关联的交集。

分享到:
评论

相关推荐

    支持MYSQL和ORACLE数据库表

    支持MYSQL和ORACLE!!!

    Oracle_数据库中的海量数据处理

    Oracle_数据库中的海量数据处理,介绍以及如何使用oracle语句处理海量数据

    ORACLE多表查询优化

    不错,收集在一块方便查看 这里提供的是执行性能的优化,而不是后台数据库优化器资料: 参考数据库开发性能方面的各种问题,收集了一些优化方案统计如下

    oracle跨数据库查询授权

    支持授权非自身表空间的用户权限。 跨数据库查询对方表数据,以及复制粘贴。

    国家洲Oracle数据表

    国家,洲Oracle数据表,已通过测试。包括国家名,所属大洲(用于关联查询),简称,国际代码,全称。

    Oracle数据库中大型表查询优化的研究

    NULL 博文链接:https://l007it.iteye.com/blog/849897

    Oracle左连接返回多条记录中一条记录的查询语句

    Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录

    Oracle两张表关联批量更新其中一张表的数据

    方法一(推荐): UPDATE 表2 ...尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围。 方法二: MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A) -- 条件是 A 相同 WHEN MATCHED THEN UP

    Oracle数据库Sql语句详解大全

    第四章 关联查询 在一张或多张表中使用等值或非等值连接 使用外连接查询 自连接查询 第五章 组函数 定义及有效的使用组函数 使用Group By对查询数据分组 使用HAVING子句对分组后的数据进行过滤 第六章 子查询 第...

    Oracle万能查询语句

    Oracle数据库查询万能语句。序列,存储过程,多表查询等关联关系

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

    执行路径:ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用:我们发现,单表数据的统计比多表统计的速度完全是两个概念.单表统计可能只要0.02秒,但是2张表联合统计就可能要几十表了. 这是因为ORACLE只对...

    查询Oracle数据库表空间和数据文件方法

    下面以oracle9i为例,详细介绍查询Oracle数据库表空间信息和数据文件信息的方法。一、查看Oracle数据库中表空间信息的方法1、查看Oracle数据库中表空间信息的工具方法:使用oracleenterprisemanagerconsole工具,这...

    oracle的明细的查询技巧

    oracle表的明细查询和多表的关联以及添加为空数据查询

    Oracle中多表关联批量插入批量更新与批量删除操作

    主要介绍了Oracle中多表关联批量插入,批量更新与批量删除操作,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    Mysql迁移Oracle方案

    2.3.1 关联移植资料档案库 2.3.2 捕获方案 2.3.3 设置数据映射 2.3.4 转换为oracle模型 2.3.5 生成数据结构执行脚本 2.3.6 迁移数据结构 2.3.7 设置“数据移动选项” 2.3.8 迁移数据 2.3.9 删除移植资料档案库 2.4 ...

    Oracle Spatial空间索引 解析

    一组实现感兴趣区域查询和空间联合查 询的算子和函数;一组管理工具 。其中第一者用于空间数据的 定义和存储;第二者用于空间索引的定义和存储,决定数据查询 分析的效率;第三者以前两者为基础,提供相应的查询和...

    ORACLE_多表关联_UPDATE_语句

    例如: 两表(多表)关联update -- 仅在where字句中的连接 --这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别 update customers a -- 使用别名 set customer_type='01' --01 为vip,00为普通 where ...

    [Oracle]如何在亿级记录表中创建索引

    [Oracle]在亿级记录表中创建索引 [Oracle]如何在亿级记录表中创建索引 [Oracle]如何在亿级记录表中创建索引

    Oracle数据库3种主要表连接方式对比

    Oracle数据库3种主要表连接方式各自优劣对比

    百亿级别海量数据删除方案(不停机维护)

    某大型央企SAP系统目前记录了2006年到2017年所有业务数据,随着时间的增长数据越来越多,数据的维护和备份也越来越麻烦,根据用户的需求需要将2006年到2015年的数据删除。 但是由于数据较多整个库大概有7T的数据量,...

Global site tag (gtag.js) - Google Analytics