数据库实验.docx

上传人:b****6 文档编号:7739315 上传时间:2023-01-26 格式:DOCX 页数:10 大小:907.52KB
下载 相关 举报
数据库实验.docx_第1页
第1页 / 共10页
数据库实验.docx_第2页
第2页 / 共10页
数据库实验.docx_第3页
第3页 / 共10页
数据库实验.docx_第4页
第4页 / 共10页
数据库实验.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数据库实验.docx

《数据库实验.docx》由会员分享,可在线阅读,更多相关《数据库实验.docx(10页珍藏版)》请在冰豆网上搜索。

数据库实验.docx

数据库实验

 

数据库实验报告

 

班级:

学号:

姓名:

 

2013年6月

使用SQLServer开发服务器端应用程序

一、实验类别

综合型实验

二、实验目的

熟练掌握后台服务器端应用程序的开发。

三、实验环境

SQLServer系列的数据库管理系统

四、实验内容

对学生-课程数据库,编写存储过程,完成下面功能:

1.逐条(使用游标)浏览某个系的学生记录;

2.统计任意一门课程的成绩分布情况,即按照各分数段统计人数;

3.统计每个学生的平均成绩及排名;

4.将学生选课成绩从百分制改为等级制(即A、B、C、D、E)显示。

五、实验要求

提交源程序并标识必要的注释。

保证程序能正确编译和运行,认真撰写实验报告。

六、实验过程

1.创建数据库及数据表

附录代码:

usestudy

createtableStudent--创建学生表

(S_nochar(6)primarykey,--学号(主键)

Class_nochar(6),--班级号

S_namevarchar(10),--学生姓名

S_sexchar

(2),--性别

Class_namechar(20),--班级名

deptchar(20)--系名

);

createtableCourse

(Course_nochar(5)primarykey,--课程号(主键)

Course_namechar(20),--课程名

);

createtableChoice--创建选课表

(S_nochar(6)primarykey,--学号(主键)

Course_nochar(5),--课程编号

Scoresmallint--课程得分

);

2.创建存储过程1完成……功能,具体代码及运行结果如下图2所示。

附录代码:

createprocedurestudentprocess

as

declare@S_nochar(6),@Class_nochar(6),@S_namevarchar(10),@S_sexchar

(2),@Class_namechar(20),@deptchar(20)

declaresave_studentcursorfor

selectS_no,Class_no,S_name,S_sex,Class_name,dept

fromStudent

opensave_student

fetchnextfromsave_studentinto@S_no,@Class_no,@S_name,@S_sex,@Class_name,@dept

while@@fetch_status=0

begin

print@S_name

print@Class_no

print@S_name

print@S_sex

print@Class_name

print@dept

fetchnextfromsave_studentinto@S_no,@Class_no,@S_name,@S_sex,@Class_name,@dept

end

closesave_student

deallocatesave_student

执行存储过程:

execstudentprocess

执行结果:

 

3.创建存储过程2

附录代码:

createprocedurecourseslect1

@Course_nochar(5)

as

--优秀--良--中--及格--不及格

declare@badsmallint,@oksmallint,@mmodsmallint,@goodsmallint,@prefctsmallint,@SS_nochar(6)

DECLAREsocerbyCURSOR

FORSELECTDISTINCTCourse_noFROMChoice

OPENsocerby

FETCHNEXTFROMsocerby

INTO@SS_no

PRINT'课程编号'+char(9)+'A'+char(9)+'B'+char(9)+'C'+char(9)+'D'+char(9)+'E'

WHILE@@FETCH_STATUS=0

BEGIN

SELECT@prefct=(SELECTCOUNT(S_no)FROMChoicestudent

WHEREScore>=90ANDCourse_no=@SS_no)

SELECT@good=(SELECTCOUNT(S_no)FROMChoicestudent

WHEREScore<90ANDScore>=80ANDCourse_no=@SS_no)

SELECT@mmod=(SELECTCOUNT(S_no)FROMChoicestudent

WHEREScore<80ANDScore>=70ANDCourse_no=@SS_no)

SELECT@ok=(SELECTCOUNT(S_no)FROMChoicestudent

WHEREScore<70ANDScore>=60ANDCourse_no=@SS_no)

SELECT@bad=(SELECTCOUNT(S_no)FROMChoicestudent

WHEREScore<60ANDCourse_no=@SS_no)

print''+char(9)+@SS_no+''+char(9)+str(@prefct+char(9))+@good+char(9)+@mmod+char(9)+@ok+char(9)+@bad

FETCHNEXTFROMsocerby

INTO@SS_no

END

CLOSEscoerby

DEALLOCATEscoerby

execcourseslect1001

 

4.创建存储过程3

源码:

createprocedureseesocre

as

SELECTS_name,Score

FROMStudent,(

selectS_no,score=AVG(Score)

FROMChoice

GROUPBYS_no

)asChoice

whereChoice.S_no=Student.S_no

ORDERBYChoice.scoredesc

execseesocre

 

5.创建存储过程4

源码:

createproceduredengji

as

SELECTCourse_no,S_No,(CASE

WHENScore<60THEN'E'

WHENScore<70ANDScore>=60THEN'D'

WHENScore<80ANDScore>=70THEN'C'

WHENScore<90ANDScore>=80THEN'B'

WHENScore>=90THEN'A'

END

)RANK

FROMChoice

execdengji

七、实验总结

虽然写完这份报告已经深夜了,但还是很有成就感。

写了一晚上的作业,感觉自己对数据库学习的理解更深一层,但不足的地方同样很,以后还要加倍努力。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1