隨筆 - 44  文章 - 78  trackbacks - 0
          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

           Happy 牛 Year
          一、一周至少寫一篇博文;
          二、每天至少學習半個小時。
          三、奔向小牛!

          常用鏈接

          留言簿(6)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          今天又有小進步,^_^!

          ?????????來源:賽迪網
          ????作者:Alizze


          關聯在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

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

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

          posted on 2008-03-18 15:32 Tiger1102 閱讀(329) 評論(0)  編輯  收藏 所屬分類: 每日進階
          主站蜘蛛池模板: 乌兰浩特市| 磴口县| 明溪县| 甘洛县| 万州区| 武宣县| 屏南县| 垦利县| 都兰县| 清原| 贵德县| 库尔勒市| 鄂伦春自治旗| 白朗县| 广安市| 德格县| 惠来县| 诸暨市| 天镇县| 九龙县| 华安县| 顺昌县| 云林县| 文登市| 府谷县| 桐城市| 大渡口区| 郓城县| 海原县| 拜泉县| 贺州市| 湾仔区| 嫩江县| 济宁市| 淮滨县| 平果县| 资兴市| 和田市| 酒泉市| 黎平县| 丁青县|