资源描述:
《《数据库原理与应用》实验报告三及答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、广东金融学院实验报告课程名称:数据库原理与应用实验编号及实验名称实验三数据库高级应用实验系别计科系姓名学号班级实验地点新电1101实验日期2014年05月14日实验时数8指导教师同组其他成员无成绩一、实验目的及要求1、掌握SQLServer存储过程的定义和使用。2、掌握SQLServer触发器的定义和使用。二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)1、计算机操作系统要求在windowsXP以上。2、并要求SQLServer软件2000以后版本。三、实验内容及要求利用实验指导书中的关系数据库完成下面题目:1、说明下面代码段的功能SELECTtnam
2、eas‘姓名’,tSexas‘性别’,casetrankwhen‘教授’then‘高级职称’when‘讲师’then‘中级职称’else‘初级职称’endfromteacher答:在教师表中选取姓名和性别两列,并给每个教师分等级;2、完成下面代码的书写计算student_course表的平时分数列的平均值。如果小于80,则分数增加其值的5%;如果分数的最高值超过95,则终止该操作。在以下代码划线处填入适当的内容以完成上述功能。WHILE(SELECT____avg________(NormalMark)FROMstudent_course)<80BEGIN第3页共2页i
3、f(SELECTMAX(NormalMark)FROMstudent_course)>____95_____BREAKELSE___UPDATEstudent_courseSETNormalMark=NormalMark*1.05END注意:实验前要先给所有同学的NormalMark赋一个初值,比如50。3、根据要求完成下列题目1)编写一个触发器:在添加期末成绩信息时,利用平时成绩、其中成绩和期末成绩来计算成绩总评。如果没有期中成绩,则平时和期末成绩比重为2:8,如果有期中成绩,则平时、期中、期末三者比重为2:2:6。答:在student_course表中添加一列sum
4、mark期末成绩,而exammark作为期中成绩,mark作为期末成绩;createtriggerget_summark2onstudent_courseforinsertasDeclare@snovarchar(10),@ccnochar(10)Declare@nmarkintDeclare@emarkintDeclare@fmarkintSelect@nmark=NormalMark,@emark=exammark,@fmark=mark,@sno=sno,@ccno=ccnofromstudent_courseifnotexists(selectexammarkf
5、romstudent_coursewhere@sno=sNOand@ccno=ccNO)beginupdatestudent_coursesetsumMark=convert(int,(@nmark*0.2)+(@fmark*0.8))endelsebeginupdatestudent_coursesetsumMark=convert(int,(@nmark*0.2)+(@eMark*0.2)+(@fmark*0.6))end2)创建一个带输入参数和输出参数的存储过程,要求实现如下功能:输入学生学号,然后输出学生的选课门数、平均分以及所选学分。答:createproce
6、durec(第3页共2页@snochar(10),@cnocountintoutput,@avgmarkfloatoutput,@sumcreditintoutput)Asbeginselect@cnocount=count(*),@avgmark=avg(mark),@sumcredit=sum(credit)Fromstudent_coursesc,course_classcc,studentswheresc.sno=s.snoandcc.ccno=sc.ccnogroupbys.sNO,snameend3)调用2小题中的存储过程,并分别获得输出相关信息。答:Dec
7、lare@ccountintDeclare@smarkfloatDeclare@screditintExecc'081220101',@ccountoutput,@smarkoutput,@screditoutputSelect'081220101'as'学生号',@ccountas'选课门数',@smarkas'平均分',@screditas'所选学分'结果:警告:聚合或其他SET操作消除了Null值。学生号选课门数平均分所选学分-----------------------------------------------------0