關系代數復習ing


名單就是姓名。

學生名單就是學生姓名。

還是先在熟悉的   學生-學習-課程表進行查詢討論訓練,2333!

學生(學號,姓名,性別,年齡,籍貫,出生年月,學院)

課程(課程號,課程名,學時,開課學期,先行課,學分,課程性質)

學習(學號,課程號,成績)

 

1.查詢至少選修課程名為'數據庫原理''操作系統'課程的學生姓名。

很明顯,這是一個集合包含性問題,可以用除法哦2333

當然擴展一下啦:交運算是可以表達部分"除法"運算實現的功能滴

 

 

 

當然,也可以用自連接,但是有些連接要多的一些,后續再寫2333。

 

2.查詢被所有同學選修的課程的課程號?查詢選修所有課程的學生的學號?

進違啦,繼續的除法運算!

 

 

 

 

3.找出計算機學院1980年以后出生的女同學的名單。

 

分析:找出計算機學院(學院)1980年以后出生(出生年月)女(性別)同學名單(姓名)

 

4.求選修1號課程的學生姓名和所在學院。

 

分析:求選修1號課程(學習表-,)的學生姓名和所在學院(學生表-)。將兩表做自然連接投影相應的屬性之。

 

5.求選修數據庫原理的學生姓名。

 

分析:需要三個表做自然連接哦2333.

 

 

 

6.查詢同時選修數據庫原理以及操作系統的學生名單?

 

查詢至少選修了數據庫原理和操作系統的學生名單?

 

查詢至少同時選修了數據庫原理以及操作系統的學生名單?

 

求至少選修了數據庫原理和操作系統的學生名單?

 

 

 

分析:繼續:除法運算。

 

名單就是姓名。

 

 

 

7.查詢沒有被任何人選修的課程名?

 

分析:差運算

 

8.查詢沒有選修任何課程的學生學號和姓名?

 

分析:仍然的差運算

 

漢語中的"沒有","是...但不包含"通常意義上是差運算的要求

 

 

 

9.查詢至少選修1號同學選修的所有課程的學生姓名?

分析:查詢至少選修1號同學選修的所有課程的學生的姓名。所有二字,一語揭示了全部所有包含性的問題這是,該用除法哦!

像另一個值得注意的查詢語句"查詢選修1號同學選修的課程的學生姓名。"這里面的意思和本題的查詢意思就截然不同了嚶嚶。

全體性問題

 

10.查詢選修1號同學選修的課程的學生姓名?

查詢選修1號同學選修的一門或多門課程的學生姓名?

分析:這里要用自連接。

可能是選擇了其中一門,這里是只要有只要存在就行了!

學習(學號,課程號,成績)

學習*學習=(1,2,3,4,5,6)=(學號,課程號,成績,學號,課程號,成績)

存在性問題2333

 

11.查詢至少選修了課程號為1和課程號為2的學生的學號?

分析:自連接可,除法也可。

 

 

 

 

 

 

忍不住寫了一些代碼,嘻嘻:

 

 

use try;

/*查詢至少選修了1號同學選修的所有課程的學生姓名*/
select sname
from student
where not exists
(select * from sc as a where sno='1' and not exists
(select * from sc as b where sno=student.sno and cno=a.cno));


/*查詢選修1號同學選修的課程的學生姓名*/
select sname
from student 
where sno in
(select a.sno
from sc as a,sc as b
where b.sno='1' and a.cno=b.cno);

 

  12.求至少選修了兩門課程的學生學號。

 

分析:解決這個問題:

關系代數-------->自連接

SQL語言--------->集函數(統計函數count)尤其為佳,嘿嘿

 

 

 

 

 

/*求至少選修了兩門課程的學生學號*/
select sno
from student
where sno in
(select sno
from sc
group by sno
having count(*)>=2);

  13.一些其他的參考嚶嚶:

 

 

 

 

 

 

來自一位17級學長的簡書blog。

 

14.接下來了解一下關系代數表達式的優化算法---語法樹

語法樹是二叉樹,千萬不要整出三叉樹這樣的幺蛾子事件哦2333!哈哈哈!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM