存储过程实验

《数据库系统 》 实验报告

实验名称 存储过程实验 实验地点 实验楼423 实验日期

一、实验目的及要求

  1. 掌握用户存储过程的创建操作。
  2. 掌握用户存储过程的执行操作。
  3. 掌握用户存储过程的删除操作。

二、实验环境
Windows10,
SQL server2008
三、实验内容
对应于“S+学号”数据库
(1)创建一个无参存储过程StuScoreInfo,查询以下信息:班级,学号,姓名,性别,课程名称,考试成绩。
在这里插入图片描述

create procedure StuScoreInfo
as
select SC., Student.,Course.*
from SC,Student,Course
where SC.Sno=Student.Sno and SC.Con=Course.Cno

(2)创建一个带参数的存储过程stu_info,该存储过程根据传入的学生编号在Student表中查询此学生的信息。
在这里插入图片描述

create procedure stu_info @SNO INT
as
select *
from Student
Where Sno=@SNO
(3)创建一个带参数的存储过程StuScoreInfo2,该存储过程根据传入的学生编号和课程名称查询以下信息:班级,学号,姓名,性别,课程名称,考试成绩。
在这里插入图片描述

create procedure StuScorelnfo2
@Sno as char(9),@Cname as char(40)
as
select [SC].Sno
,[SC].Con
,[Sname]
,[Cname]
,[Grade]
from SC,Student,Course
Where SC.Sno=Student.Sno
and SC.Con=Course.Cno
and Student.Sno=@Sno
and Course.Cname=@Cname
(4)编写存储过程,统计离散数学的成绩分布情况,即按照各分数段统计人数。
在这里插入图片描述

create procedure mathgrade
@Cname varchar(20)=‘离散数学’
as
select Grade as ‘离散数学’,
count (case when Grade > 90 then 1 end ) as ‘90分以上’,
count (case when Grade > 80 and Grade <=90 then 1 end ) as ‘80~90分以上’,
count (case when Grade > 70 and Grade <=80 then 1 end ) as ‘70~80分以上’,
count (case when Grade > 60 and Grade <=70 then 1 end ) as ‘60~70分以上’,
count (case when Grade <= 60 then 1 end ) as ‘60分以下’
from SC,Course
Where SC.Con=Course.Cno and Course.Cname = @Cname
(5) 编写带参数的存储过程,根据传入的课程名称统计该课程的平均成绩。
在这里插入图片描述

create procedure AVGMARK
@Cname varchar(40)
as
SELECT @Cname as ‘科目’,AVG(Grade) as ‘平均成绩’
from SC,Course
Where SC.Con=Course.Cno
and Course.Cname = @Cname

四、实验总结
通过本次实验使我更加熟悉了数据库,还掌握了用户存储过程的创建操作、用户存储过程的执行操作、用户存储过程的删除操作的作用和使用方法,使我对数据库的使用更加熟练了。也大大增加了我对数据库的兴趣。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值