网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  灵活应用oracle数据查询时经常用到的关联     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:116次  录入:管理员--2008-03-03  
 

关联在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

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

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

 
 
上一篇: 将移动数据文件到其它目录下的实用方法    下一篇: 对系统默认的约束名和索引名进行重命名
  相关文档
如何在oracle数据库中使用java存储过程 08-12
个人经验总结:oracle数据库scn号详解 08-12
由浅入深讲解oracle数据库进程的相关概念 (1) 04-23
哪些因素可以影响oracle数据库的性能 03-11
教你快速掌握解决rman-06026错误的方法 (1) 04-03
教你快速的解决oracle缓冲区忙等待事件 11-15
如何在相对空闲的rac实例中强制自动切换 04-16
[Oracle]一次数据库性能问题的tuning 08-05
Oracle里取随机数的几种具体的方法 05-13
讲解oracle数据库自定义异常的使用方法 04-15
使用oracle功能特性提高应用执行效率 (1) 04-15
认识NBU备份Oracle时Code 29错误的解答 06-03
在oracle 11g数据库中实现自我调整功能 07-24
Oracle 10g数据库的安全性和身份管理 06-03
oracle数据库启动监听器不启动或打开出错 07-16
oracle数据库等待事件说明及处理方法 (1) 04-16
如何监控Oracle索引的使用完全解析 05-13
如何判断一个字符串的内容是否是数值 04-03
详细讲解oracle sql*loader的使用方法 08-18
使用多线索服务器的Oracle的运行 09-29
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息