数据库实验六游标的使用.doc

上传人:b****1 文档编号:238627 上传时间:2022-10-07 格式:DOC 页数:5 大小:89KB
下载 相关 举报
数据库实验六游标的使用.doc_第1页
第1页 / 共5页
数据库实验六游标的使用.doc_第2页
第2页 / 共5页
数据库实验六游标的使用.doc_第3页
第3页 / 共5页
数据库实验六游标的使用.doc_第4页
第4页 / 共5页
数据库实验六游标的使用.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库实验六游标的使用.doc

《数据库实验六游标的使用.doc》由会员分享,可在线阅读,更多相关《数据库实验六游标的使用.doc(5页珍藏版)》请在冰豆网上搜索。

数据库实验六游标的使用.doc

数据库实验六:

游标的使用

一、实验目的与要求:

1.实验目的

(1)理解SQL的宿主使用方式。

(2)掌握游标的使用方法。

2.实验要求

(1)参考例7-3建立一个嵌套游标应用,其功能是按学号升序列出全体学生信息(学号、姓名、院系名称)及其所修课程的名称和考试成绩信息(基于前面实验建立的表和插入的数据)

(2)按要求逐一读出游标中的记录,并在界面上显示。

(3)可以交互对记录进行修改。

二、实验内容

1、实验原理

(1)定义游标的SQL语句的一般格式是:

DECLARE<游标名>[INSENSITIVE][SCROLL]CURSOR

FOR

[FOR{READONLY|UPDATE[OF<列名>[,<列名>…]]}]

(2)打开游标的SQL语句的一般格式是:

OPEN<游标名>

(3)从游标中读记录的SQL语句的一般格式是:

FETCH[[NEXT|PRIOR|FIRST|LAST|ABSOLUTEn|RELATIVEn]FROM]<游标名>

[INTO:

<主变量1>,:

<主变量2>…]

(4)关闭游标的SQL语句的一般格式是:

CLOSE<游标名>

(5)释放游标

DEALLOCATE<游标名>

(6)使用游标的UPDATE命令的格式是:

UPDATE<表名>

SET<列名>={<表达式>|NULL}[,<列名>={<表达式>|NULL}…]

WHERECURRENTOF<游标名>

(7)使用游标的DELETE命令的格式是:

DELETEFROM<表名>

WHERECURRENTOF<游标名>

2、实验步骤与结果

(1)调出SQLServer2005软件的用户界面,进入SQLSERVERMANAGEMENTSTUDIO。

(2)输入自己编好的程序。

(3)检查已输入的程序正确与否。

(4)运行程序,并分析运行结果是否合理和正确。

在运行时要注意当输入不同的数据时所得到的结果是否正确。

(5)输出程序清单和运行结果。

(1)参考例7-3建立一个嵌套游标应用,其功能是按学号升序列出全体学生信息(学号、姓名、院系名称)及其所修课程的名称和考试成绩信息(基于前面实验建立的表和插入的数据)

(2)按要求逐一读出游标中的记录,并在界面上显示。

(3)可以交互对记录进行修改。

代码及截图:

declare@xuehaochar(10),@xingmingchar(10),@yuanxichar(10)

declare@kechengchar(10),@chengjismallint

declarexuesheng_cursorcursorforselect学号,姓名,院系from学生

openxuesheng_cursor

fetchfromxuesheng_cursorinto@xuehao,@xingming,@yuanxi

while@@FETCH_STATUS=0

begin

print'学号:

'+@xuehao+'姓名:

'+@xingming+'院系:

'+@yuanxi

declarekecheng_cursorcursorforselect课程名称,成绩from选课,课程where选课.学号=@xuehaoand课程.课程编号=选课.课程编号

openkecheng_cursor

fetchfromkecheng_cursorinto@kecheng,@chengji

while@@FETCH_STATUS=0

begin

print@xingming+'的选课是:

'+@kecheng+'成绩是:

'+str(@chengji)

print''

fetchfromkecheng_cursorinto@kecheng,@chengji

end

closekecheng_cursor

deallocatekecheng_cursor

fetchfromxuesheng_cursorinto@xuehao,@xingming,@yuanxi

end

closexuesheng_cursor

deallocatexuesheng_cursor

declare@AVGMsmallint,@StuNumsmallint

declareAVGMcursorforselect学号,平均成绩from学生

openAVGM

fetchfromAVGMinto@StuNum,@AVGM

while@@FETCH_STATUS=0

begin

if@AVGM<60

begin

update学生

set平均成绩=59

where学号=@StuNum

print'修改了一名学生的成绩'

end

fetchfromAVGMinto@StuNum,@AVGM

end

closeAVGM

deallocateAVGM

三、实验分析与小结:

(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)

1、实验过程中的问题分析、产生的原因以及解决方法。

2、实验结果分析;有待优化思路。

在实验过程中应该特别注意:

内、外层都是用全局变量@@FETCH_STATUS进行控制,该变量的值取决于最近一次FETCH语句的执行结果。

四、其它

思考题:

1、游标的作用?

答:

游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。

每个游标区都有一个名字。

用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。

主语言是面向记录的,一组主变量一次只能存放一条记录。

仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求。

嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式。

得分(百分制)

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

当前位置:首页 > 自然科学 > 化学

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

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