摘要:希賽網軟考頻道小編為大家整理了2019年數(shù)據庫系統(tǒng)工程師下午真題第四部分,供大家參考。
4、閱讀下列說明,回答問題1至問題4,將解答填入答題紙的對應欄內。
【說明】
某學生信息管理系統(tǒng)的部分數(shù)據庫關系模式如下:
學生:Student ( stuno, stuname, stuage, stusex, schno),各屬性分別表示學生的學號、姓名、年齡、性 別,以及學生所屬學院的編號;
學院:School ( schno, schname, schstunum ),各屬性分別表示學院的編號、名稱及學生人數(shù);
俱樂部:Club (clubno,clubname, clubyear, clubloc ),各屬性分別表示俱樂部的編號、名稱、成立年 份和活動地點;
參加:JoinClub ( stuno, clubno. joinyear ),各屬性分別表示學號、俱樂部編號,以及學生加入俱樂部 的年份。
有關關系模式的說明如下:
(1) 學生的性別取值為‘F’和‘M' (F表示女性,M表示男性)。
(2) 刪除一個學院的記錄時,通過外鍵約束級聯(lián)刪除該學院的所有學生記錄。
(3) 學院表中的學生人數(shù)值與學生表中的實際人數(shù)要完全保持一致。也就是說,當學生表中增減記錄時,就要自動修改相應學院的人數(shù)。
問題內容:
根據以上描述,回答下列問題,將SQL語句的空缺部分補充完整。
【問題1】(4分)
請將下面創(chuàng)建學生表的SQL語句補充完整,要求定義實體完整性約束、參照完整性 約束,_以及其他完整性約束。
CREATE TABLE Student (
stuno CHAR(ll) ( ),
stuname VARCHAR( ),
stuage SMALLINT,
stusex CHAR(l) ( ),
schno CHAR(3) ( ) ON DELETE ( ));
【問題2】(5分)
創(chuàng)建倶樂部人數(shù)視圖,能統(tǒng)計每個倶樂部已加入學生的人數(shù),屬性有clubno> clubname 和clubstunum。對于暫時沒有學生參加的俱樂部,其人數(shù)為0。此視圖的創(chuàng)建語句如下, 請補全。
CREATE VIEW CS_NUMBER ( clubno, clubname, clubstunum ) AS
SELECT JoinClub.clubno, ( ) , ( )
FROM JoinClub, Club
WHERE JoinClub.clubno = Club.clubno
( ) BY JoinClub.clubno ( )
SELECT clubno, clubname, 0 FROM Club
WHERE clubno NOT 04
(SELECT DISTINCT clubno FROM ( ));
【問題3】(4分)
每當系統(tǒng)中新加或刪除一個學生,就需要自動修改相應學院的人數(shù),以便保持系統(tǒng)中學生人數(shù)的完整性與一致性。此功能由下面的觸發(fā)器實現(xiàn),請補全。
CREATE TRIGGER STU_NUM_TRG
AFTER INSERT OR DELETE ON ( )
REFERENCING new row AS nrow, old row AS orow FOR EACH( )
BEGIN
IF INSERTING THEN
UPDATE School ( )
END IF;
IF DELETING THEN
UPDATE School ( );
END IF;
END;
【問題4】(2分)
查詢年齡小于19歲的學生的學號、姓名及所屬學院名,要求輸出結果把同一個學院的學生排在一起。此功能由下面的SQL語句實現(xiàn),請補全。
SELECT stuno, stuname, schname FROM Student, School WHERE Student.schno = School.schno
AND stuage <19 ( ) BY ( );
軟考備考資料免費領取
去領取