1、数据库技术与应用实验考试试卷(2)说明:本实验所用数据库为student,实验结果将所书写的SQL语句或存储过程内容贴入下面的文档。将word文档用个人姓名命名,完成后提交到教师机。一、写出实现以下功能的SQL语句(50)1、删除“09软件1班” 课程编号为“0301”的成绩信息delete scoreinfowhere stdid=(select stdid from classinfo where classname=09软件班)and courseid=(0301)2. 按班级显示指定课程(编号为0305)的最高分、最低分、平均分。要求显示格式为:班级名称 最高分、最低分、平均分sele
2、ct b.classname as 班级名称, max(a.score) as 最高分, min(a.score) as 最低分, avg(a.score) as 平均分from scoreinfo a,classinfo b,studentinfo cwhere courseid=0305 and a.stdid=c.stdid and c.classid=b.classidgroup by b.classname3查询课程编号为“0101002”考试成绩在80分以上的人数select count(*) as Nfrom scoreinfowhere score80 and courseid
3、=01010024.查询班号为0101200802的班级中所有姓刘的学生信息。要求显示其以下信息: 学号 姓名 性别select stdid ,stdname,genderfrom studentinfowhere classid=0101200802and stdname=刘5将成绩表中课程编号为0302,学号为“20090101”的成绩改为70update scoreinfo set score=70where courseid=0302 and stdid=20090101二、存储过程与触发器(50)1.在student数据库中创建一个存储过程pr_countScore,当输入一个存在的
4、班级编号时,统计出该班级所有课程的平均成绩、最高成绩和最低成绩。若班级不存在则显示“无此班级的成绩信息”。要求显示的信息:课程名称 平均成绩 最高分 最低分= Author:李阳阳 Create date: 2011.12.08 Description:当输入一个存在的班级编号时,统计出该班级所有课程的平均成绩、最高成绩和最低成绩。若班级不存在则显示“无此班级的成绩信息”。 =CREATE PROCEDURE pr_countScoreclassid char(4), classname nchar(10) output, avg int output, max int output, min
5、 int outputASBEGINselect b.coursename as 课程名称,avg(a.score)as 平均成绩, max(a.score)as 最高分,min(a.score)as 最低分 from scoreinfo a,courseinfo b,studentinfo c where a.courseid=b.courseid and c.stdid=a.stdid and c.classid=classid group by b.coursenameENDGO2.为Studentinfo表编写一个insert触发器,当插入学生记录,将该学生对应的班级人数加1。- =- Author:李阳阳- Create date: 2011.12.08- Description:当新增一个学生记录时将学生所在的班级人数加- =CREATE TRIGGER inc_class_number ON dbo.studentInfo after INSERT AS BEGINdeclare cid char(4) select cid=inserted.ClassID from inserted -将学生所在的班级人数加 update classinfo set number=number+1 where ClassID=cidENDGO