本科实验报告
课程名称: 数据库系统原理
实验项目:使用T-SQL编写存储过程访问数据库
实验地点: 4606
专业班级: 学号:
学生姓名:
指导教师:
2012 年 11 月 8 日
一 目的与要求
熟悉使用存储过程来进行数据库应用程序的设计。
二 实验设备与环境
在实验一中安装的 RDBMS 及其 T-SQL 执行引擎。
三 实验内容、实验记录及实验结果与分析
对学生-课程数据库,编写存储过程,完成下面的功能:
(1)统计某课程(如离散数学)的成绩分布情况,即按照各分数段统计人数;
T-SQL语句:
create procedure p_satscore @cno char(4) --course number as
begin
declare @score1 int declare @score2 int declare @num int
declare @cname varchar(10) --course name
set @cname=(select cname from course where cno=@cno) print '<'+@cname+'>'+'考试成绩 按照分数段统计情况' set @score1='100' set @score2='90' while(@score1>=0)
begin
set @num=(select count(*) from sc where cno=@cno and grade between @score2 and @score1)
print str(@score2)+'至'+str(@score1)+'分 人数为'+str(@num) set @score1=@score2-1 if @score1>=60
set @score2=@score2-10 else
set @score2=0 end end
EXEC p_satscore @cno='3';
查询结果:
▼ (2)统计任意一门课的平均成绩。
T-SQL语句:
create procedure avg_Course
@HCourse char(20) as
DECLARE @gradeAvg float
select @gradeAvg=avg(Grade) from SC,Course
where Cname=@HCourse and SC.Cno=Course.Cno
print '课程名称:' + convert(varchar(10),@HCourse) print '平均成绩:' + convert(varchar(10),@gradeAvg) go
EXEC avg_Course '管理信息系统';
查询结果:
四 实验遇到的问题和解决方法
1. T-SQL语句初次接触,感觉还是比较难。相对于之前学过的C语言等,嵌入式数据库语言的语法结构不是很明白。或许是刚开始使用,比较生疏。
2. 开始编写时利用指导书所给代码,运行出错。检查之后发现是数据库对象选择错误,修改之后运行成功。
3. 第二步不明白在那里看运行结果,查书、查资料后才发现还要新建一个查询,EXEC中才会显示出来结果,最终试验成功。
五 实验心得
1. 对T-SQL语句的模式有了初步的认识和掌握,觉得以后有时间了必须好好学一学。查书查资料过程中发现利用T-SQL语句还能编写C语言时候有关的练习程序,有趣也有兴趣学学。
2. 数据库的五个实验全部完成,掌握了基本的数据库管理经验,和相关的利用SQL语句创建表,查询数据等项目。课本的理论必须在实践中慢慢明白并掌握,这也是实验的最终目的所在。
3. 实验中存在的问题也很多,不过都一一化解,通过各种途径。老师和同学的指导帮助也是实验成功的基础,表示感谢。学习、实验中遇到问题也要及时询问,才能克服各种阻碍,获得最终的试验成功。