資料庫實驗課堂作業-1.4檢視
阿新 • • 發佈:2018-11-14
資料庫實驗課堂作業
1.4檢視
1.內容:
(1):定義常見的檢視形式,包括:
*行列子集檢視。
*WITH CHECK OPTON 的檢視。
*基於多個基表的檢視。
*基於多個檢視的檢視。
*帶表示式的檢視。
*分組檢視。
(2):通過實驗考察 WITH CHECK OPTION 這一語句在檢視定義後產生的影響,包括對修改操作,刪除操作,插入操作影響。
(3):討論檢視的資料更新情況,對子列檢視進行資料更新。
(4):使用DROP語句刪除一個檢視,由該檢視匯出的其他檢視定義仍然在資料字典中,但已不能使用,必須顯示刪除。同樣的原因,
刪除基表時,由該基表匯出的所有檢視定義都必須顯示刪除。
二、程式碼
use school CREATE VIEW CS AS SELECT NO,SID,CID,SCORE FROM CHOICES WHERE SCORE>=60 --(1)定義一個行列子集檢視,給出選課成績合格的學生的編號,所選課程號和成績 CREATE VIEW SCT (SNAME,CNAME,TNAME) AS SELECT STUDENTS.SNAME,COURSES.CNAME,TEACHERS.TNAME FROM CHOICES,STUDENTS,COURSES,TEACHERS WHERE CHOICES.TID=TEACHERS.TID AND CHOICES.CID=COURSES.CID AND CHOICES.SID=STUDENTS.SID --(2)定義學生姓名和其所選修的課程名及講授該課程的教師姓名的檢視 CREATE VIEW SCC (SNAME,CNAME,SCORE) AS SELECT STUDENTS.SNAME,COURSES.CNAME,CHOICES.SCORE+5 FROM CHOICES,STUDENTS,COURSES WHERE CHOICES.CID=COURSES.CID AND CHOICES.SID=STUDENTS.SID --(3)定義有學生姓名所選課程名和所有課程成績都多5分的檢視 CREATE VIEW S_G(SID,SAVG) AS SELECT SID,AVG(SCORE) FROM CHOICES GROUP BY SID --(4)將學生的學號及其平均成績定義為一個檢視,將選課記錄按學生分組 CREATE VIEW S_C_S(SID,CCOUNT,SAVG) AS SELECT SID,COUNT(CS.CID),AVG(SCORE) FROM CS GROUP BY CS.SID --(5)定義一個包括學生編號,學生所選課程數目和平均成績的檢視 SELECT SNAME FROM SCT WHERE CNAME=’software engineering’ --(6)檢查所有選修課程Software Engineering的學生姓名 INSERT INTO CS VALUES (’600000000’,’823069829’,’10010’,59) CREATE VIEW CS (NO,SID,CID,SCORE) AS SELECT CHOICES.NO, CHOICES.SID,CHOICES.CID,CHOICES.SCORE FROM CHOICES WHERE CHOICES.SCORE>=60 WITH CHECK OPTION --(7)插入元祖(600000000,823069829,10010,59)到檢視CS中 UPDATE CS SET SCORE=SCORE-5 WHERE CID=’10010’ UPDATE CS SET SCORE=SCORE+5 WHERE CID=’10010’ AND SCORE<95 --(8)將檢視CS中,所有課程編號為10010的課程的成績都減去5分 DELETE CS WHERE SID=’804529880’ --(9)在檢視CS刪除編號804529880學生的記錄 DROP VIEW SCT DROP VIEW CS --(10)取消檢視SCT和檢視CS