1. 程式人生 > >資料庫SQL查詢的經典例子

資料庫SQL查詢的經典例子

正如老師在作業系統裡引用的話,我不妨拿來套用一下---複習資料庫有種不知道自己姓啥的感覺,尤其在面對戰老師這華麗麗的四連招時,真是快招架不住,不過老師的必殺卻能幫助我們更好的理解和區分元組演算和關係代數。於是記下來準備接招......
已知:學生關係:Student(S#, Sname, Sage, Ssex, Sclass) 課程關係:Course(C#, Cname, Chours, Credit, Tname) 選課關係:SC(S#, C#, Score)  求學過李明老師講授所有課程的學生姓名(全都學過)

圖片
(關係代數那個式子,是除法的典型用法---求全部怎麼樣。先把整體的資料表通過自然連線組在一起,然後用李明老師去匹配,最後投影為名字。元組演算那個式子是選擇student表中的名字,滿足如下條件:對於任意在course表中教師是李明的元組,都存在SC表中學號對應學生表的學號,課程號對應課程表的課程號。)
求沒學過李明老師講授任一門課程的學生姓名(全沒學過)圖片

(上面的:先求出學過李明老師課的學生,然後從學生表中減去即可。
下面的:意思和第一個差不多,就是對於任意的李明老師的元組都不存在.......)
求至少學過一門李明老師講授課程的學生姓名(至少學過一門)圖片
(上面的:只要是tname=李明的就行
下面的:把任意的改成存在。)
求至少有一門李明老師講授課程沒有學過的學生姓名(至少有一門沒學過)
圖片
(上面的:至少有一門沒學過就是去掉全學過的。之前有全學過的表示。減去即可
下面的:存在李明老師教的課沒有對應的學生即該學生沒選。)
個人覺得資料庫真心鍛鍊人的思維,不過對於在下這種木魚似的腦袋,真是不敲都頭疼啊...........(往後複習才發現還有更大的殺招......被秒殺了
 )