数据库游标实验报告3页_第1页
数据库游标实验报告3页_第2页
数据库游标实验报告3页_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库实验报告计算机系一、实验目的1、掌握创建游标的方法和步骤;2掌握游标的使用方法;二、实验内容1、游标的创建;2、游标的使用方法。三、实验步骤1、游标的创建。1)使用S_C数据库中的S表、C表、SC表创建一个存储过程sp_CURSOR1。该存储过程的作用是:显示所有的课程信息,如果成绩>=90显示成绩本身;成绩>=80显示良;成绩>=70显示中;成绩>=60显示及格;成绩>=0显示不及格;如果没有成绩则显示无成绩。信息还包含学号,姓名,课程和成绩,显示格式如下:学号-姓名-课程-成绩,如图1所示。要求使用游标技术实现上述要求,使用Print语句实现显示。图1

2、成绩显示格式sp_CURSOR1的创建语句:create proc sp_CURSOR1asDeclare sname varchar(50)Declare sno varchar(20)Declare cno varchar(20)Declare cname varchar(20)Declare grade varchar(20)Declare SCursor Cursor ForSelect sno,cno,grade From SCOpen SCursorFetch Next From SCursor Into sno,cno,gradeWhile FETCH_STATUS = 0beg

3、inselect sname=sname From S where sno=snoselect cname=cname From C where cno=cnoif(grade = '') Print sno+sname+cname+'null'else if(grade >= 90) Print sno+sname+cname+gradeelse if(grade >=80)Print sno+sname+cname+'良'else if(grade >=70)Print sno+sname+cname+'中'

4、else if(grade >=60)Print sno+sname+cname+'及格'else Print sno+sname+cname+'不及格'Fetch Next From SCursor Into sno,cno,gradeEndClose SCursorDeallocate Scursorgo结果描述:2、游标的使用。计算银行利息。有一储户账号为0001,银行存取记录如下:交易日期交易金额账户余额备注2010-10-011000010000开户存入2010-12-2020000300002011-02-03-5000250002011-05

5、-01-3000220002011-10-10600028000存取记录数据表名为fundlist,字段名为id(编号,int),cid(储户账号,varchar(20)),ex-date(交易日期,datetime),ex-money(交易金额,money),balance(账户余额,money)。根据有关规定,银行存款利息为:2011-04-01号之前(包括)为年利息2%,之后(不包括)为年利息3%,请用编写一个存储过程sp_cal_interest用来计算该储户的当前利息,要求利用游标实现。说明:当前用getdate()表示,年利息2%用存入的天数*2%/365表示利息。create p

6、roc sp_cal_interestasDeclare id intDeclare cid varchar(20)Declare ex_date datetimeDeclare ex_money moneyDeclare balance moneyDeclare pre_ex_date datetimeDeclare pre_balance moneyDeclare result moneyDeclare SCursor Cursor ForSelect id,cid,ex_date,ex_money,balance From fundlistOpen SCursorFetch Next F

7、rom SCursor Into id,cid,ex_date,ex_money,balanceset pre_ex_date=ex_dateset pre_balance=balanceset result=0While FETCH_STATUS = 0beginset pre_balance=pre_balance+resultif(ex_date<=Cast('2011-04-01' as datetime)beginset result=pre_balance*(datediff(day,pre_ex_date,ex_date)*2/36500endelsebeg

8、inif(pre_ex_date<=Cast('2011-04-01' as datetime)beginset result=pre_balance*(datediff(day,pre_ex_date,Cast('2011-04-01' as datetime)*2/36500+pre_balance*(datediff(day,Cast('2011-04-01' as datetime),ex_date)*3/36500endelsebeginset result=pre_balance*(datediff(day,pre_ex_date,ex_date)*3/36500endendset pre_ex_date=ex_dateset pre_balance=balanceFetch Next From SCursor Into id,cid,ex_date,ex_money,balanceEndprint resultClose SCursorDeallocate Scursorgo四、实验总结在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论