數(shù)據(jù)庫表達式中的類型不匹配 怎么用關(guān)系代數(shù)表達式完成數(shù)據(jù)庫查詢?
怎么用關(guān)系代數(shù)表達式完成數(shù)據(jù)庫查詢?S?SC表示自然連接。當查詢的選擇條件所涉及的屬性與查詢結(jié)果所需的屬性不在同一個表中時,則需要使用join query將條件與結(jié)果關(guān)聯(lián)起來。在關(guān)系數(shù)據(jù)庫標準語言SQ
怎么用關(guān)系代數(shù)表達式完成數(shù)據(jù)庫查詢?
S?SC表示自然連接。當查詢的選擇條件所涉及的屬性與查詢結(jié)果所需的屬性不在同一個表中時,則需要使用join query將條件與結(jié)果關(guān)聯(lián)起來。
在關(guān)系數(shù)據(jù)庫標準語言SQL中,實現(xiàn)數(shù)據(jù)檢索的語句命令是什么?
Select query statement
語法:Select[all | distinct]< target list expression>[as column name][,< target list expression>[as column name]…]from< table name>[,< table name>
][where< conditional expression>[和|或< conditional expression>…
][group by column name[具有< conditional expression>
[按列名排序[ASC | desc>
說明:[all | distinct]all:全部;distinct:排除重復(fù)行
< target list expression>;AVG、count、sum、min、Max、operator等可用于字段
<條件表達式>謂詞
比較=,>,<,>=,<=,!=,<>,
確定介于和之間的范圍,而不是介于和之間
確定集合在,而不是在
字符匹配像(“%”匹配任意長度,“匹配一個字符,而不是像
null為null,不為null
子查詢any,all,exists
集合查詢Union,intersect,minus
多個條件and,or,not
分組查詢結(jié)果
][having< conditional expression>]分組篩選條件
][order by column name[ASC | desc>]排序查詢結(jié)果;ASC:升序desc:降序
~][example]假設(shè)教學(xué)數(shù)據(jù)庫中有三種關(guān)系:
學(xué)生關(guān)系s(SnO,sname,age,sex)
學(xué)習(xí)關(guān)系SC(SnO,CNO,grade)
課程關(guān)系C(CNO,CNAME,teacher)
下面使用關(guān)系代數(shù)表達式來表示每個查詢語句。
(1)檢索C2的學(xué)號和年級。
πSnO,grade(σCNO=“C2”(SC))
(2)檢索學(xué)習(xí)課程號為C2的學(xué)生的學(xué)號和姓名
πSnO,sname(σCNO=“C2”(SSC))
由于此查詢涉及到兩個關(guān)系s和SC,這兩個關(guān)系自然連接起來,以獲取同一學(xué)生的信息,然后執(zhí)行選擇投影操作。
此查詢也可以等效為:
πSnO,sname(s)(πSnO(σCNO=“C2”(SC))
此表達式中自然連接的正確組成部分是“已學(xué)習(xí)C2課程的學(xué)生人數(shù)集”。此表達式比上一個表達式更優(yōu)化,節(jié)省了時間和空間。
(3)搜索數(shù)學(xué)選修課的學(xué)號和名稱。
πSnO,sanme(σCNAME=“math”(SSCC))
(4)搜索選修課C2或C4的學(xué)號。
πSnO(σCNO=“C2”∨CNO=“C4”(SC))
(5)至少搜索選修課編號C2或C4的學(xué)號。
π1(σ1=4∧2=“C2”5=“C4”(SC×SC))
這里(SC×SC)表示關(guān)系SC本身的乘法運算,其中數(shù)字1、2、4和5是其結(jié)果關(guān)系中的屬性序列號。
關(guān)系代數(shù)數(shù)據(jù)庫中兩個條件查詢語言怎么表達?
[示例]假設(shè)教學(xué)數(shù)據(jù)庫中有三種關(guān)系:學(xué)生關(guān)系s(SnO、sname、年齡、性別)、學(xué)習(xí)關(guān)系SC(SnO、CNO、年級)、課程關(guān)系C(CNO、CNAME、教師)。每個查詢語句都用關(guān)系代數(shù)表達式表示。(1) 檢索C2的學(xué)號和年級。πSnO,grade(σCNO=“C2”(SC))(2)檢索學(xué)習(xí)課程號為C2πSnO,sname(σCNO=“C2”(SSC))的學(xué)生的學(xué)號和姓名,因為這個查詢涉及到兩個關(guān)系s和SC,這兩個關(guān)系自然連接起來,得到同一個學(xué)生的信息,然后執(zhí)行選擇性投影操作。這個查詢也可以等價地寫成:πSnO,sname(s)(πSnO(σCNO=“C2”(SC)))。在這個表達式中,自然連接的正確組成部分是“學(xué)習(xí)了C2課程的學(xué)生數(shù)的集合”。此表達式比上一個表達式更優(yōu)化,節(jié)省了時間和空間。(3) 搜索名為math的選修課的學(xué)號和名稱。πSnO,sanme(σCNAME=“math”(SSCC))(4)搜索選修課C2或C4的學(xué)號。πSnO(σCNO=“C2”∨CNO=“C4”(SC))(5)至少搜索選修課號C2或C4的學(xué)號。π1(σ1=4∧2=“C2”5=“C4”(SC×SC))其中(SC×SC)表示關(guān)系SC本身的乘法運算,其中數(shù)字1、2、4和5是其結(jié)果關(guān)系中的屬性序列號。