资源描述:
《实验4 编写存储过程访问数据库》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程实验报告课程名称数据库系统概论班级软件132实验日期2015.11.17姓名刘俊学号201307229实验成绩实验名称实验4:编写存储过程访问数据库实验目的及要求熟悉使用存储过程来进行数据库应用程序的设计。实验环境操作系统:WindowsDBMS:SQLServer2005实验内容创建关系模式SCSC(snovarchar(10)主键,Student表的外键,cnovarchar(5)主键,Course表的外键,gradeint,newgradevarchar(1))一开始SC表中的前3列是有数据的,newgrade列全部是空的1.编写存储过程
2、将学生选课成绩(百分制)转换成等级制(即A、B、C、D、F),要求使用游标完成其中,A:90~100B:80~89C:70~70D:60~69F:0~592.执行该存储过程,使得newgrade列中为各等级。调试过程及实验结果总结对于第一次使用存储过程来访问数据库来说,这次的实验出现了很多的问题,比如游标的使用,比如存储过程的编写,再有执行语句的顺序也有很大的问题。在完成这个实验之后,对本章的知识有了些大概的了解,可以用存取过程来简单的访问数据库了。附录createtableStudent(snovarchar(10),snamevarchar(8
3、),ssexvarchar(2),sageint,constraintc1check(sage>=10andsage<=50),sdeptvarchar(20),primarykey(sno));createtableCourse(cnovarchar(5)primarykey,cnamevarchar(20)unique,cpnovarchar(5),creditint);createtableSC(snovarchar(10),cnovarchar(5),gradeint,newgradevarchar(1),primarykey(sno,cn
4、o),foreignkey(sno)referencesStudent(sno),foreignkey(cno)referencesCourse(cno),);insertintoStudent(sno,sname,ssex,sage,sdept)values('201307227','张三','男','20','CS');insertintoStudent(sno,sname,ssex,sage,sdept)values('201307228','李四','女','19','CS');insertintostudent(sno,sname,sse
5、x,sage,sdept)values('201307229','小刘','男','18','MA');select*fromStudent;insertintocourse(cno,cname,cpno,credit)values('1','数据库','5',4);insertintocourse(cno,cname,cpno,credit)values('2','数学',null,2);insertintocourse(cno,cname,cpno,credit)values('3','信息系统','1',4);insertintocourse
6、(cno,cname,cpno,credit)values('4','操作系统','6',3);select*fromCourse;insertintoSC(sno,cno,grade)values('201307227','1',92);insertintosc(sno,cno,grade)values('201307227','2',88);insertintosc(sno,cno,grade)values('201307227','3',76);insertintosc(sno,cno,grade)values('201307228','1'
7、,66);insertintosc(sno,cno,grade)values('201307229','4',99);select*fromSC;CREATEPROCEDUREStdASBEGINDECLARE@chgradechar(1),@cursnoint,@curcnoint,@curgradeintDECLAREcurSCCURSORFORSELECTsno,cno,gradefromSCopencurSCFETCHcurSCinto@cursno,@curcno,@curgradeWHILE(@@FETCH_STATUS=0)BEGIN
8、IF@curgrade>=90SET@chgrade='A'ELSEIF@curgrade>=80SET@chgrade=