基本運算
選擇運算
選擇選出關系中滿足給定謂詞的元組,組成新的關系,用小寫希臘字母sigma(\(\sigma\))來表示選擇,謂詞寫作\(\sigma\)的下標,關系則作為參數在括號中出現。
選擇instructor關系中物理系的那些元組。
比較運算符包括\(=,\neq, \lt, \leq, \gt, \geq\)。
邏輯運算包括\(\wedge(and), \vee(or), \neg(not)\)
下面找到物理系並且工資大於90000的教師。
選擇謂詞中也可以包括兩個屬性的比較,下面選出系名和樓名相同的系
投影運算
當只需要關系中的部分屬性時可以使用投影運算,用大寫字母\(\Pi(pi)\)來表示
下面選擇instructor
中的ID、dept_name和salary字段。
關系運算的組合
由於之前我們學的兩個運算都需要一個關系並返回一個關系,所以可以把它們組合起來。
並運算
查詢2009年秋和2010年春開課的所有課程的集合
2009年秋
2010年春
並集
注意,我們不用像SQL一樣進行手動去重,因為關系本身在數學中的定義就是集合,不會有重復數據。
對於並集運算\(r\cup s\),需要滿足
- 關系r和s必須同元,即它們的屬性數目必須相同
- 它們對於r的第i個屬性\(r_i\),s的第i個屬性\(s_i\)的域和\(r_i\)的域一致
集合差運算
在2009年秋季開課但並不在2010年春季開課的課程
笛卡爾積運算
查找物理系教師並顯示出它們教授的課程
更名運算
將關系r重命名為x。
將關系r重命名為x,並將其中的屬性重命名為\(A_1...A_n\)
也可以使用\(\$i\)的方式訪問第\(i\)個屬性,而不用重命名屬性。
附加關系代數運算
上面的基本運算在很多時候會顯得冗長,所以要設計一些附加的符號來進行運算。
集合交運算
返回r和s的交集。每一個集合交運算可以通過\(r=r-(r-s)\)來得到。
自然連接
表示r與s進行自然連接。
外連接
左外
右外
全外
廣義投影
就是可以在投影的屬性里進行算術運算
E是關系表達式,F1到Fn是E中屬性的算術表達式
聚集函數
這個我不會打。。。
元組演算
略
域關系鹽酸
略