1、数据库实验六:游标的使用一、实验目的与要求:1实验目的(1)理解SQL的宿主使用方式。(2)掌握游标的使用方法。2实验要求(1)参考例7-3建立一个嵌套游标应用,其功能是按学号升序列出全体学生信息(学号、姓名、院系名称)及其所修课程的名称和考试成绩信息(基于前面实验建立的表和插入的数据) (2)按要求逐一读出游标中的记录,并在界面上显示。(3)可以交互对记录进行修改。二、实验内容1、实验原理 (1)定义游标的SQL语句的一般格式是:DECLARE INSENSITIVE SCROLL CURSORFOR FOR READ ONLY | UPDATE OF ,(2)打开游标的SQL语句的一般格式
2、是:OPEN (3)从游标中读记录的SQL语句的一般格式是:FETCH NEXT | PRIOR | FIRST | LAST | ABSOLUTE n | RELATIVE n FROM INTO: ,:(4)关闭游标的SQL语句的一般格式是:CLOSE (5)释放游标DEALLOCATE (6)使用游标的UPDATE命令的格式是:UPDATE SET =| NULL ,=| NULL WHERE CURRENT OF (7)使用游标的DELETE命令的格式是:DELETE FROM WHERE CURRENT OF 2、实验步骤与结果 (1)调出SQL Server2005软件的用户界面,
3、进入SQL SERVER MANAGEMENT STUDIO。(2)输入自己编好的程序。(3)检查已输入的程序正确与否。(4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。(5)输出程序清单和运行结果。(1)参考例7-3建立一个嵌套游标应用,其功能是按学号升序列出全体学生信息(学号、姓名、院系名称)及其所修课程的名称和考试成绩信息(基于前面实验建立的表和插入的数据) (2)按要求逐一读出游标中的记录,并在界面上显示。(3)可以交互对记录进行修改。代码及截图:declare xuehao char(10), xingming char(10), y
4、uanxi char(10)declare kecheng char(10), chengji smallintdeclare xuesheng_cursor cursor for select 学号, 姓名, 院系 from 学生open xuesheng_cursorfetch from xuesheng_cursor into xuehao, xingming, yuanxiwhile FETCH_STATUS = 0beginprint 学号:+xuehao+ 姓名:+xingming+ 院系:+yuanxideclare kecheng_cursor cursor for selec
5、t 课程名称, 成绩 from 选课, 课程 where 选课.学号 = xuehao and 课程.课程编号 = 选课.课程编号open kecheng_cursorfetch from kecheng_cursor into kecheng, chengjiwhile FETCH_STATUS = 0beginprint xingming+的选课是:+kecheng+ 成绩是:+str(chengji)print fetch from kecheng_cursor into kecheng, chengjiendclose kecheng_cursordeallocate kecheng_
6、cursorfetch from xuesheng_cursor into xuehao, xingming, yuanxiendclose xuesheng_cursordeallocate xuesheng_cursordeclare AVGM smallint,StuNum smallintdeclare AVGM cursor for select 学号,平均成绩 from 学生open AVGMfetch from AVGM into StuNum,AVGMwhile FETCH_STATUS=0beginif AVGM 60begin update 学生set 平均成绩 =59wh
7、ere 学号=StuNum print 修改了一名学生的成绩endfetch from AVGM into StuNum,AVGMendclose AVGMdeallocate AVGM三、实验分析与小结:(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析; 有待优化思路)1、实验过程中的问题分析、产生的原因以及解决方法。2、实验结果分析; 有待优化思路。在实验过程中应该特别注意:内、外层都是用全局变量FETCH_STATUS进行控制,该变量的值取决于最近一次FETCH语句的执行结果。四、其它思考题:1、游标的作用?答:游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。主语言是面向记录的,一组主变量一次只能存放一条记录。仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求。嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式。得分(百分制)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1