Oracle筆記 關係代數

2021-06-11 20:45:16 字數 1235 閱讀 7421

關係代數是一種過程化語言,因為使用者通過順序使用一組運算來達到期望的結果。通過對資料表執行集合運算,產生新的結果表,然後將這些結果表用於隨後的順序運算。在oracle中,所有的運算名市級上都不用做程式設計術語,這些運算中的大多數都不產生新的結果表。

1、並運算(union):兩張資料表的並運算結果是檢索一張或兩張表中的所有行。重複的行要從結果表中除去,也就是說,結果表中不能包含具有相同資料值的兩行。對於兩張資料表執行並運算需要滿足兩個基本要求:1)兩張表必須具有相同的度;2)兩張資料表的響應列必須具有相同的域;

2、交運算(intersection):兩張資料表的交運算所產生的結果表包括兩張表中共有的行。兩張資料表必須是相容的,才能執行交運算;

3、差運算(difference):兩張資料表的差運算所產生的結果表包括第一章表中出現但地二張表中不出現的那些行。差運算只能再並相容的表上才能完成;

4、投影運算(projection):通過投影運算,我們可以從一張表的所有存在列中選擇一些期望的列來生成一張新錶,不期望的列則可以忽略不管。投影運算返回資料表的「垂直切片(vertical slice)「;

5、選擇運算(selection):選擇運算根據乙個或多個條件從一張資料表中選擇符合條件的行。條件運算子(=、<>、>、>=、<、<=)和邏輯運算子(and、or、not)與列和值一同使用,可以生成要滿足的條件。選擇運算返回資料表的」水平切片(horizontal slice)「;

6、乘積運算(product):兩張資料表的乘積是將這兩張表的所有資訊聯合起來。乘積也稱為笛卡爾積(cartesian product)。如果資料表較大,則其乘積會很大。如果第一張資料表包括x行,第二張資料表包括y行,那麼其成績會包括x*y行。如果第一張表包括m列,第二張資料表包括n列,那麼其乘積結果包括m+n列;

7、賦值運算(assignment):這種運算是通過存在的表來建立一張新錶。我們在所有其他運算裡都已經執行過這種運算。通過賦值(=)運算,我們可以根據其他一些資料表來命名一些新錶;

8、連線運算(join):連線運算是最重要的運算之一,通過這種運算我們可以得到許多表的相關資料。連線運算基於共同的值集,兩張資料表中的值集不一定具有相同的名稱,但必須具有相同的域。連線運算會增加系統開銷,因為連線運算是通過以系列運算完成的。首先執行乙個乘積運算,其結果包括m*n行。接著再執行乙個選擇運算,選出值相等的那些行。最後,執行投影運算,將重複的值列刪除;

9、除法運算(division):除法運算是理解起來難度最大的一種運算。它並不像數學中的除法那麼簡單。在關係代數中,它識別一張表中與另一張表中的所有行具有一定的關係的那些行。

MySQL利用關係代數進行查詢 關係代數

關係代數的由來 首先從巨集觀上來認識一下關係演算這個概念,換句話講也就是什麼是關係代數,這也是我在接觸一些東西的首要工作。大家都知道對於關係型資料庫的資料庫操作語言分為查詢和更新兩類。而查詢語言這塊,又分為關係代數語言與關係演算語言。這裡講的 關係代數的由來 首先從巨集觀上來認識一下關係演算這個概念...

關係代數運算

五種基本關係代數運算 集合 某些指定的物件集在一起就成了乙個集合,其中每乙個物件叫元素。集合的三特性 確定性 互異性 無序性。1 確定性 指的是概念清晰,物件描述明確,不能含混不清 不能模稜兩可。2 互異性 對於乙個給定的集合,它的任何兩個元素都是不同的。3 無序性 給定的乙個集合,集合內的元素間位...

2 1關係代數

tags 資料庫 關係代數是一種抽象的查詢語言,它用對關係的雲南算來表達查詢。任何一種運算都是將一定的運算子作用於一定的運算物件上,得到預期的運算結果。所以運算物件 運算子 運算結果是運算的三大要素。關係代數的運算物件是關係,運算結果亦為關係。傳統的集合運算是二目運算,包括並 差 交 笛卡爾積四種運...