得 分 四、PL/SQL编程(25分)
某高校成绩数据库管理的关关系SC 系S 表结构如下:
1) S(SNO,SN,SD,SA,SEX),
各属性的含义依次为:学号、姓名、所属系、年龄、性别; 2) C(CNO,CN,PC),各属性的含
义依次为:课程号、课程名、先修
关系C 课程;
3) SC(SNO,CNO,GRADE),各属
性的含义依次为:学号、课程号、成绩,其中GRADE允许为空。 试进行如下PL/SQL编程:
40.在S表上创建触发器DEL_S_SNO,使得在删除某学生信息时,自动删除其在SC
表中的选课信息。 (10分)
CREATE OR REPLACE TRIGGER DEL_S_SNO
BEFORE DELETE ON S FOR EACH ROW BEGIN
DELETE FROM SC
WHERE SNO = :OLD.SNO ;
END ;
41.创建存储过程ShowGRADE统计指定课程的最高分、最低分和平均分,并调用
ShowGRADE输出“数据结构”的最高分、最低分和平均成绩。 (15分)
CREATE OR REPLACE PROCEDURE ShowGRADE(
Cname IN C.CN%TYPE , MAX_GRADE OUT NUMBER, MIN_GRADE OUT NUMBER, AVG_GRADE OUT NUMBER) AS BEGIN
SELECT MAX(GRADE),MIN(GRADE),AVG(GRADE)
INTO MAX_GRADE, MIN_GRADE, AVG_GRADE FROM C,SC
GROUP BY C.CNO,SC.CNO HAVING C.CNO = SC.CNO AND C.CN = Cname ;
END ; /
VARIABLE MAX_GRADE NUMBER ; VARIABLE MIN_GRADE NUMBER ; VARIABLE AVG_GRADE NUMBER ;
EXECUTE ShowGRADE ('数据结构', :MAX_GRADE, :MIN_GRADE,
:AVG_GRADE) ;
PRINT MAX_GRADE MIN_GRADE AVG_GRADE ;
企业级数据库实验习题2(答案)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)