oracle 關係代數

來源:互聯網
上載者:User

關係代數中的操作可以分為兩類:

(一):傳統的集合操作。並,差,交,笛卡爾積。

(二):擴充的關係操作:投影(關係表的垂直分隔),選擇(關係表的水平分隔),串連(關係表的結合),除法(笛卡爾積的逆運算)。

1.並 -- Union

  在oracle 裡面的並有兩種union,union all。區別在於union過濾重複行!一般在沒有重複行的時候使用union all這樣查詢的效率快。

eg:

    select * from A union (all) select * from B

 

2.差 -- minus

eg:select * from B minus select * from B

 

3.笛卡爾積 Cartesian Product  -- cross join

eg:select * from A cross join B

結果:行數:A的行數和B的行數的乘積;列數:A的列數加B的列數。

 

關係代數的四個組合操作

1.交  intersect

eg: select * from A intersect select * from B;(A表,B表 需要有相同的欄位值 即有相同的元數)

結果:A 表 和 B表的交集

2.串連

在關係代數裡面的串連分為兩種:θ串連和F串連。

θ串連:笛卡爾積加上選擇操作。

F串連:滿足某一個公式F的串連。

 

θ串連:重要的當θ串連的操作符為=的時候就是我們常說的等值串連。

     等值串連的結果:如果沒有做投影操作,選擇出來的笛卡爾積,選擇滿足相等條件的行。列為做串連表的列和。

eg:select *  from A ,B where A.id=B.id。

 

自然串連natural Join

類似上面的等值串連,先做笛卡爾積,然後選擇元組。其中的公用屬性只出現一次。

eg:select * from A natural join B  ===行數等於===select *  from A ,B where A.id=B.id(注意列數的不一樣)

 

3.外串連 outer join (包括left (outer) join ,right (outer) join, full outer join)

eg:select * from A  left outer join B on(A.id=B.id)

     equals

     select * from A left join outer join using(id);--using後面的()不能少

     equals

     select * from A  ,B where A.id = B.id(9i之後的寫法)(+)

     把外串連用加好(+)括起來表示,那括弧放在那個表上,標識這個表沒有匹配沒有關係可以用控制補充上去,這個+動作就是填充空值的動作.

 

基本表串連:

連線類型:inner join ; left outer join ;right outer join ;full outer join;

串連條件:natural(應該寫在連線類型的左邊);on 等值串連的條件(應該寫在連線類型的右邊); using(A1,A2,..An)(應該寫在連線類型的右邊)

連線類型分為:內和外串連兩種。內串連是等值的F串連,外串連又分為左,右,完全外串連

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.