为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数据库实验六:游标的使用

2017-09-20 4页 doc 76KB 91阅读

用户头像

is_014457

暂无简介

举报
数据库实验六:游标的使用数据库实验六:游标的使用 一、实验目的与要求: 1.实验目的 (1)理解SQL的宿主使用方式。 (2)掌握游标的使用方法。 2.实验要求 (1)参考例7-3建立一个嵌套游标应用,其功能是按学号升序列出全体学生信息(学号、姓名、院系名称)及其所修课程的名称和考试成绩信息(基于前面实验建立的表和插入的数据) (2)按要求逐一读出游标中的记录,并在界面上显示。 (3)可以交互对记录进行修改。 二、实验内容 1、实验原理 (1)定义游标的SQL语句的一般格式是: DECLARE [INSENSITIVE] [SCROLL] CU...
数据库实验六:游标的使用
数据库实验六:游标的使用 一、实验目的与要求: 1.实验目的 (1)理解SQL的宿主使用方式。 (2)掌握游标的使用方法。 2.实验要求 (1)参考例7-3建立一个嵌套游标应用,其功能是按学号升序列出全体学生信息(学号、姓名、院系名称)及其所修课程的名称和考试成绩信息(基于前面实验建立的和插入的数据) (2)按要求逐一读出游标中的记录,并在界面上显示。 (3)可以交互对记录进行修改。 二、实验内容 1、实验原理 (1)定义游标的SQL语句的一般格式是: DECLARE <游标名> [INSENSITIVE] [SCROLL] CURSOR FOR [FOR {READ ONLY | UPDATE [OF <列名>[,<列名>…]]}] (2)打开游标的SQL语句的一般格式是: OPEN <游标名> (3)从游标中读记录的SQL语句的一般格式是: FETCH [[NEXT | PRIOR | FIRST | LAST | ABSOLUTE n | RELATIVE n ] FROM ] <游标名> [INTO: <主变量1>,:<主变量2>…] (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软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。 (2)输入自己编好的程序。 (3)检查已输入的程序正确与否。 (4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。 (5)输出程序清单和运行结果。 (1)参考例7-3建立一个嵌套游标应用,其功能是按学号升序列出全体学生信息(学号、姓名、院系名称)及其所修课程的名称和考试成绩信息(基于前面实验建立的表和插入的数据) (2)按要求逐一读出游标中的记录,并在界面上显示。 (3)可以交互对记录进行修改。 代码及截图: declare @xuehao char(10), @xingming char(10), @yuanxi char(10) declare @kecheng char(10), @chengji smallint declare xuesheng_cursor cursor for select 学号, 姓名, 院系 from 学生 open xuesheng_cursor fetch from xuesheng_cursor into @xuehao, @xingming, @yuanxi while @@FETCH_STATUS = 0 begin     print '学号:'+@xuehao+' 姓名:'+@xingming+' 院系:'+@yuanxi         declare kecheng_cursor cursor for select 课程名称, 成绩 from 选课, 课程 where 选课.学号 = @xuehao and 课程.课程编号 = 选课.课程编号         open kecheng_cursor     fetch from kecheng_cursor into @kecheng, @chengji         while @@FETCH_STATUS = 0     begin         print @xingming+'的选课是:'+@kecheng+' 成绩是:'+str(@chengji)         print ''         fetch from kecheng_cursor into @kecheng, @chengji     end         close kecheng_cursor     deallocate kecheng_cursor     fetch from xuesheng_cursor into @xuehao, @xingming, @yuanxi end close xuesheng_cursor deallocate xuesheng_cursor declare @AVGM smallint,@StuNum smallint declare AVGM cursor for  select 学号,平均成绩 from 学生 open AVGM fetch from AVGM into @StuNum,@AVGM while @@FETCH_STATUS=0 begin     if @AVGM <60     begin         update 学生             set 平均成绩 =59             where 学号=@StuNum         print '修改了一名学生的成绩'     end     fetch from AVGM into @StuNum,@AVGM end close AVGM deallocate AVGM 三、实验分析与小结: (实验过程中的问题分析、产生的原因以及解决方法;实验结果分析; 有待优化思路) 1、实验过程中的问题分析、产生的原因以及解决方法。 2、实验结果分析; 有待优化思路。 在实验过程中应该特别注意:内、外层都是用全局变量@@FETCH_STATUS进行控制,该变量的值取决于最近一次FETCH语句的执行结果。 四、其它 思考题: 1、游标的作用? 答:游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。主语言是面向记录的,一组主变量一次只能存放一条记录。仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求。嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式。 得分(百分制)         
/
本文档为【数据库实验六:游标的使用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索