解釋DBMS中代數關係的一元運算?
查詢是提問或請求資訊。查詢語言是一種用於從資料庫中檢索資訊的語言。
查詢語言分為兩種型別:
過程式語言
非過程式語言
過程式語言
透過指定要執行的操作序列來從資料庫中檢索資訊。
例如:關係代數。
結構化查詢語言(SQL)基於關係代數。
關係代數由一組操作組成,這些操作將一個或兩個關係作為輸入,並生成一個新的關係作為輸出。
關係代數運算的型別
關係代數運算的不同型別如下:
選擇運算
投影運算
重新命名運算
並運算
交運算
差運算
笛卡爾積運算
連線運算
除運算
選擇、投影、重新命名屬於一元運算(對一個表進行操作)。
選擇運算
它顯示滿足條件的記錄,並用西格瑪(σ)表示。它是原始關係的水平子集。
語法
選擇運算的語法如下:
σcondition(table name)
示例1
考慮以下給出的學生表:
學號 | 專業 | 班級 |
---|---|---|
1 | 計算機科學與工程 | A |
2 | 電子與通訊工程 | B |
3 | 土木工程 | B |
4 | 資訊科技 | A |
要顯示學生表的所有記錄,請使用以下命令:
σ(student)
要顯示學生表中計算機科學與工程專業的全部記錄,我們可以使用以下命令:
σbranch=cse(student)
輸出
學號 | 專業 | 班級 |
---|---|---|
1 | 計算機科學與工程 | A |
要顯示學生表中學號大於2的所有記錄,我們可以使用以下命令:
σRegNo>2(student)
輸出
學號 | 專業 | 班級 |
---|---|---|
3 | 土木工程 | B |
4 | 資訊科技 | A |
要顯示電子與通訊工程專業班級B的學生的記錄,請使用以下命令:
σbranch=ECE ^ section=B(student)
要顯示班級B的計算機科學與工程和資訊科技專業的記錄,請使用以下命令:
σSection=B ^ Branch=cse ∨ branch=IT(student)
示例2
考慮EMPLOYEE TABLE作為另一個示例,以瞭解選擇操作:
檢索工資大於20,000的員工資訊。
如果指定一個條件,則得到以下結果:
σ salary > 20,000 (emp)
如果在查詢中指定多個條件(AND:∧,OR:∨,Not:#,等於:=,>,<,>=,<=)
關係運算符將用於將多個條件組合到一個語句中。
例如:如果我們希望檢索工資>20,000且擔任系主任(HOD)且部門編號為20的員工資訊。
σ salary > 20,000 ^LOC=HOD ^Deptno=20(emp)
投影運算
它顯示錶的特定列。它用派(Π)表示。它是原始關係的垂直子集。它消除了重複的元組。
語法
投影運算的語法如下:
∏regno(student)
示例1
考慮以下給出的學生表:
學號 | 專業 | 班級 |
---|---|---|
1 | 計算機科學與工程 | A |
2 | 電子與通訊工程 | B |
3 | 土木工程 | B |
4 | 資訊科技 | A |
要顯示學生表的學號列,請使用以下命令:
∏regno(student)
輸出
學號 |
---|
1 |
2 |
3 |
4 |
要顯示學生表的專業、班級列,請使用以下命令:
∏branch,section(student)
輸出
專業 | 班級 |
---|---|
計算機科學與工程 | A |
電子與通訊工程 | B |
土木工程 | B |
資訊科技 | A |
要顯示電子與通訊工程學生的學號、班級,請使用以下命令:
∏regno,section(σbranch=ECE(student))
輸出
學號 | 班級 |
---|---|
2 | B |
**注意**:可以在選擇運算中編寫條件,但不能在投影運算中編寫條件。
示例2
考慮員工表以瞭解更多關於投影的資訊。
如果在查詢中未指定任何條件,則
∏ empid, ename, salary, address, dno (emp)
如果指定了條件,則選擇和投影的組合如下:
∏ empid, ename, salary, address, dno (σ salary >20,00 ^ LOC = HOD ^ dno=20) (emp)
重新命名運算
它用於為關係分配一個新名稱。它用ρ(rho)表示。
語法
重新命名運算的語法如下:
ρnewname (tablename or expression)
考慮以下給出的學生表:
學號 | 專業 | 班級 |
---|---|---|
1 | 計算機科學與工程 | A |
2 | 電子與通訊工程 | B |
3 | 土木工程 | B |
4 | 資訊科技 | A |
示例1
使用以下方法將學生表重新命名為newstudent:
ρnewstudent (student)
示例2
使用以下命令將學生表的姓名、專業列分別重新命名為newname和newbranch:
ρnewname,newbranch(Πname,branch( student))
二元運算應用於兩個相容的關係。
如果兩個關係R1、R2的度數相同並且對應屬性的域相同,則這兩個關係是相容的。
DDL中的Rho用於關係名稱,DML中的Rho用於屬性名稱。
SQL Old name New name
重新命名型別
重新命名可以使用三種方法,如下所示:
更改關係的名稱。
更改屬性的名稱。
兩者都更改。