1. 程式人生 > >資料庫實驗課堂作業-1.4檢視

資料庫實驗課堂作業-1.4檢視

  				資料庫實驗課堂作業
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