博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle数据关联查询
阅读量:5083 次
发布时间:2019-06-13

本文共 2126 字,大约阅读时间需要 7 分钟。

 

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

 

建表

 

create table ab             (             ab_id  number(5),             ab_name varchar2(30)             ); create table bb             (             bb_id  number(5),             bb_name varchar2(30)             );

 

 

插入数据

 

       insert into ab(ab_id,ab_name) values(1,'1ab_name');             insert into ab(ab_id,ab_name) values(2,'2ab_name');             insert into ab(ab_id,ab_name) values(3,'3ab_name');             insert into bb(bb_id,bb_name) values(1,'1bb_name');             insert into bb(bb_id,bb_name) values(2,'2bb_name');             insert into bb(bb_id,bb_name) values(4,'4bb_name');             insert into bb(bb_id,bb_name) values(6,'6bb_name');

等值关联(全关联)

select a.ab_id,a.ab_name,b.bb_name from ab a,             bb b             where a.ab_id=b.bb_id;

 

返回结果

AB_ID AB_NAME BB_NAME             1 1ab_name 1bb_name             2 2ab_name 2bb_name

 

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

 

左关联

select ab_id,ab_name, bb_name             from ab a left join  bb b             on a.ab_id=b.bb_id;             同             select ab_id,ab_name, bb_name             from ab a , bb b             where a.ab_id=b.bb_id(+);

返回结果

AB_ID AB_NAME BB_NAME             1 1ab_name 1bb_name             2 2ab_name 2bb_name             3 3ab_name

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

右关联

select ab_id,ab_name, bb_name             from ab a right join  bb b             on a.ab_id=b.bb_id;             同             select ab_id,ab_name, bb_name             from ab a , bb b             where a.ab_id(+)=b.bb_id;

返回结果:

AB_ID AB_NAME BB_NAME             1 1ab_name 1bb_name             2 2ab_name 2bb_name             4bb_name             6bb_name

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

 

完全外关联

select ab_id,ab_name, bb_name             from ab a full join  bb b             on a.ab_id=b.bb_id;

返回结果

AB_ID AB_NAME BB_NAME             1 1ab_name 1bb_name             2 2ab_name 2bb_name             3 3ab_name             6bb_name             4bb_name

 

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

 

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

 

转载于:https://www.cnblogs.com/gggg/p/5798268.html

你可能感兴趣的文章
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
Mongo自动备份
查看>>
cer证书签名验证
查看>>
synchronized
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>