隨筆 - 0, 文章 - 11, 評論 - 0, 引用 - 0
          數據加載中……

          Oracle 聯合查詢

          聯合查詢種類:
          1、Cross Join(全連接)
          2、Inner Join(內連接)
          3、Left Join(左連接)
          4、Right Join(右連接)
          5、Full Out Join(全外連接)

          準備演示環境:

          班級表:CLASS


          5條記錄,5個唯一的班級,其中班級5中沒有學生。


          學生表:STUDENT


          6條記錄,其中學生1與學生2是同班同學,學生6沒有對應的班級。


          那么Oracle中怎么實現五類聯合查詢呢?它們是什么意思呢?

          1、Cross Join(全連接)
          代碼語句:
          1 SELECT * FROM STUDENT STU , CLASS CLS

          執行結果:
          返回 30 條記錄 ,將 學生表的總條數(6 ROWS) 乘以 班級表的總條數(5 ROWS)(笛卡兒集):


          2、Inner Join(內連接)
          執行代碼:
          1 SELECT * FROM STUDENT STU
          2                     , CLASS CLS
          3             WHERE STU.CLASS_ID = CLS.CLASS_ID

          執行結果:
          返回 5 條記錄 ,學生表的CLASS_ID匹配班級表的CLASS_ID,符合條件的查詢出結果:


          3、Left Join(左連接)注意:左連接“(+)”號在 右邊
          執行代碼:
          1 SELECT * FROM STUDENT STU  
          2                     , CLASS CLS
          3             WHERE STU.CLASS_ID = CLS.CLASS_ID(+)
          執行結果:
          返回 6 條記錄 ,執行可分解為兩步:
          1、先將學生表的CLASS_ID匹配班級表的CLASS_ID查詢出來(此例為5條記錄)
          2、再將左(Student)表中CLASS_ID 沒有匹配 右(CLASS)表CLASS_ID的記錄查詢出來(此例為1條記錄)
          4、Right Join(右連接)  注意:右連接“(+)”號在 左邊
          執行代碼:
          1 SELECT * FROM STUDENT STU  
          2                     , CLASS CLS
          3             WHERE STU.CLASS_ID(+= CLS.CLASS_ID
          執行結果:
          返回 6 條記錄 ,執行可分解為兩步:
          1、先將班級表的CLASS_ID匹配學生表的CLASS_ID查詢出來(此例為5條記錄)
          2、再將左(CLASS)表中CLASS_ID 沒有匹配 右(STUDENT)表CLASS_ID的記錄查詢出來(此例為1條記錄)


          5、Full Out Join(全外連接)
          執行代碼:
          1 SELECT * FROM   STUDENT STU 
          2 FULL OUTER JOIN CLASS CLS
          3                    ON STU.CLASS_ID = CLS.CLASS_ID
          執行結果:
          返回 7 條記錄 ,執行可分解為三步:
          1、先將班級表的CLASS_ID匹配學生表的CLASS_ID查詢出來(此例為5條記錄)
          2、再將左(Student)表中CLASS_ID 沒有匹配 右(CLASS)表CLASS_ID的記錄查詢出來(此例為1條記錄)
          3、再將左(CLASS)表中CLASS_ID 沒有匹配 右(STUDENT)表CLASS_ID的記錄查詢出來(此例為1條記錄)

          posted on 2014-05-10 18:37 00001000 閱讀(201) 評論(0)  編輯  收藏 所屬分類: 數據庫


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 吴忠市| 宁远县| 连江县| 泽州县| 苗栗市| 泽普县| 微山县| 临洮县| 长白| 崇义县| 东源县| 如皋市| 湛江市| 葵青区| 高清| 荆州市| 商城县| 荣昌县| 儋州市| 宁远县| 文成县| 峨边| 临夏县| 商洛市| 呼图壁县| 甘肃省| 上饶市| 石家庄市| 缙云县| 芷江| 湖南省| 邵武市| 青海省| 木兰县| 绵阳市| 阳谷县| 大邑县| 涿州市| 庄河市| 盐山县| 承德市|