隨筆 - 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)  編輯  收藏 所屬分類: 每日進階
          主站蜘蛛池模板: 高雄市| 将乐县| 朝阳区| 贵德县| 冀州市| 来宾市| 大渡口区| 吴堡县| 黑山县| 凤庆县| 浦县| 尼木县| 九龙坡区| 麦盖提县| 高邑县| 三江| 邮箱| 岚皋县| 海阳市| 台中市| 文山县| 鲁山县| 松阳县| 克什克腾旗| 元氏县| 乡城县| 双城市| 寻甸| 资中县| 宁陵县| 汾阳市| 嘉鱼县| 浑源县| 龙海市| 浪卡子县| 井陉县| 邢台市| 华安县| 当涂县| 射阳县| 武夷山市|