熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle數據查詢時經常用到的關聯

2013-11-13 22:22:31  來源: Oracle 

  關聯在Oracle數據查詢時會經常用到靈活的應用關聯可以解決很多實際應用的問題下面給出一些示例:

  

  建表

  

  

  create table ab ( ab_id number() ab_name varchar() ); create table bb ( bb_id number() bb_name varchar() );

  

  

  插入數據

  

  

  insert into ab(ab_idab_name) values(ab_name); insert into ab(ab_idab_name) values(ab_name); insert into ab(ab_idab_name) values(ab_name); insert into bb(bb_idbb_name) values(bb_name); insert into bb(bb_idbb_name) values(bb_name); insert into bb(bb_idbb_name) values(bb_name); insert into bb(bb_idbb_name) values(bb_name);

  等值關聯(全關聯)

  

  select aab_idaab_namebbb_name from ab a bb b where aab_id=bbb_id;

  返回結果

  

  AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name

  

  返回兩個表中所有能匹配的記錄不能匹配的記錄不返回

  左關聯

  

  select ab_idab_name bb_name from ab a left join bb b on aab_id=bbb_id; 同 select ab_idab_name bb_name from ab a bb b where aab_id=bbb_id(+);

  返回結果

  

  AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name ab_name

  返回左邊表的左右記錄在右邊表中沒有對應記錄的右表字段顯示為空

  右關聯

  

  select ab_idab_name bb_name from ab a right join bb b on aab_id=bbb_id; 同 select ab_idab_name bb_name from ab a bb b where aab_id(+)=bbb_id;

  返回結果:

  

  AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name bb_name bb_name

  返回右邊表中所有的記錄在右邊表不能匹配的記錄行上左邊表對應的字段顯示為空

  完全外關聯

  

  select ab_idab_name bb_name from ab a full join bb b on aab_id=bbb_id;

  返回結果

  

  AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name ab_name bb_name bb_name

  

  返回兩個表所有的結果如果在關聯條件上沒有對應的記錄那麼將在該列上顯示為空

  

  全關聯返回的結果集范圍最小完全外關聯返回的結果范圍最大是否左關聯和右關聯並集全關聯是左關聯和右關聯的交集


From:http://tw.wingwit.com/Article/program/Oracle/201311/18919.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.