彩票走势图

关联在Oracle数据库中的使用

原创|其它|编辑:郝浩|2009-10-16 13:22:36.000|阅读 573 次

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

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

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

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

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


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:IT专家网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP