当前位置:文档之家› 实验12 游标的使用

实验12 游标的使用

实验12 游标的使用
实验12 游标的使用

实验十二游标的使用

姓名:学号:

专业:网络工程班级: 1

同组人:无实验日期:2009-12-3

【实验目的与要求】

1.掌握使用SQL-92语法和T-SQL扩展声明游标,并理解相关参数含义。

2.掌握游标的使用过程。

【实验内容与步骤】

12.1、声明游标

(1)使用SQL-92语法声明一只进只读游标CUR1:要求结果集2004年3月18日销售情况。

declare CUR1 cursor

for select * from CPXSB

where 销售日期='2004-3-18'

for read only

(2)使用T-SQL扩展声明一滚动动态游标CUR2:要求结果集为客户信息,并能通过该游标修改客户名称列。

declare CUR2 cursor

scroll

for select * from XSS

for update of 客户名称

12.2、打开游标

打开CUR2游标。

open CUR2

12.3、读取游标中数据

编写程序,实现依次读取游标CUR2中各行数据。

fetch next from CUR2

while @@FETCH_STATUS=0

BEGIN

FETCH NEXT FROM CUR2

END

12.4、关闭游标

关闭CUR2游标。

close CUR2

12.5、释放游标

释放CUR2游标。

DEALLOCATE CUR2

【实验练习】

编写程序,用游标实现从CP表中读取产品编号、产品名称和价格,并将价格在1000-3000(不包含1000和3000)之间的产品名称和价格输出。

DECLARE CUR3 CURSOR

FOR SELECT 产品编号,产品名称,价格 FROM CP

WHERE 价格>1000 AND 价格<3000

FOR READ ONLY

OPEN CUR3

FETCH NEXT FROM CUR3

WHILE @@FETCH_STATUS=0

BEGIN

FETCH NEXT FROM CUR3

END

CLOSE CUR3

DEALLOCATE CUR3

【分析与回答】

1.什么是游标?为什么要使用游标?

答:游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。

SQL是面向集合的,一条SQL语句可以产生或处理多条记录。而主语言是面向记录的,一组主变量一次只能存放一条记录。所以仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求,所以使用游标,用游标来协调这两种不同的处理方式。

2.对游标的操作语句有哪些?分别代表什么含义?

答:定义游标:

DECLARE cursor_name CURSOR

FOR select_statement

打开游标:

OPEN cursor_name

从游标中提取取数据:

FETCH [FIRST ,LAST,PRIOR, NEXT, RELATIVE ,ABSOLUTE] FROM

cursor_name

删除游标引用:

DEALLOCA TE cursor_name

关闭一个开放的游标:

CLOSE cursor_name

实验16 游标、存储过程和函数参考答案

实验十六游标、存储过程和函数 一、目的与要求 1.了解游标的概念和工作原理; 2.了解存储过程的分类和使用方法; 3.了解触发器的概念; 4.学习编写和执行自定义过程; 5.学习编写和执行自定义函数; 6.学习创建和使用触发器。 二、实验准备 1.首先要了解游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了。将游标放置到某行后,即可对该行数据进行操作,最常见的操作是提取当前行数据。 2.使用显式游标的步骤: (1)说明游标。 (2)打开游标。 (3)读取数据。 (4)关闭游标。 3.了解PL/SQL包括3种存储过程,即过程、函数和程序包。 4.了解触发器是一种特殊的存储过程,当指定表中的数据发生变化时自动运行。 三、实验内容 1.练习书上的例子10.1—10.24。 2.以上机实验经常用到的数据库LIB为例,编写过程P_ResetPrice,此过程的功能是将表图书中指定书号的单价更改为10.0,调用该过程将书号为’TP311.13/CM3’的单价更改为10.0,将程序写在实验报告中。 create or replace procedure P_ResetPrice (vBno in varchar2) as begin update 图书 set 单价=10.0 where 图书号=vBno; end; execute P_ResetPrice(‘TP311.13/CM3’); 3.编写一函数F_GetBName,该函数的功能是在图书中根据指定的书号,返回该书的书名,并在匿名块中调用函数F_GetBName找出编号为“TP311.132/ZG1”的书名,将程序写在实验报告中。 create function F_GetName (vtno IN 图书.图书号%Type) return 图书.书名%Type

实验九 游标与存储过程

实验九游标与存储过程 1 实验目的与要求 (1) 掌握游标的定义和使用方法。 (2) 掌握存储过程的定义、执行和调用方法。 (3) 掌握游标和存储过程的综合应用方法。 2 实验内容 请完成以下实验内容: (1)创建游标,逐行显示Customer表的记录,并用WHILE结构来测试 @@Fetch_Status的返回值。输出格式如下: declare @C_no char(9),@C_name char(18),@C_phone char(10), @C_addchar(8),@C_zip char(6) declare @text char(100) declarecus_cur scroll cursor for select* from Customer select @text='=========================Customer 表的记录 =========================' print @text select @text='客户编号'+'-----'+'客户名称'+'----'+'客户住址'+'-----'+'客户电话'+'------'+'邮政编码' print @text select @text='============================================================ ============================' print @text opencus_cur fetchcus_cur into @C_no,@C_name,@C_phone,@C_add,@C_zip while(@@fetch_status=0) begin select @text=@cust_No+' '+@cust_name+' '+@addr+' '+@tel_no+' '+@zip print @text fetchcus_cur into @C_no,@C_name,@C_phone,@C_add,@C_zip end closecus_cur deallocatecus_cur '客户编号'+'-----'+'客户名称'+'----'+'客户住址'+'-----'+'客户电话'+'------'+'邮政编码'

实验四 视图及游标

实验四视图及游标 实验目的: (1)熟悉视图的概念和作用; (2)掌握视图的创建方法; (3)掌握如何查询和修改视图; (4)掌握用可视化方法设计Employees_view; (5)掌握游标的概念及使用方法。 实验内容: (1)创建视图,包含员工号码、姓名、所在部门名称和实际收入这几列。 create view employees_view(employeeid,name,departmentname,real income) as select employees.employeeid,name,departmentname,income-outcome from employees,departments,salary where employees.employeeid=salary.employeeid and employees.departmentid=departments.departmentid

(2)从视图Employees_view查询出姓名为“王林”的员工的实际收入 SELECT dbo.salary.inCome - dbo.salary.outCome AS realincome FROM dbo.Employees INNER JOIN dbo.salary ON dbo.Employees.EmployeeID = dbo.salary.employeeID WHERE (https://www.doczj.com/doc/711421216.html, = '王林') (3)若视图关联了某表中的所有字段,而此时该表中添加了新字段,视图中能否查询到该字段? select*from employees_view where name='叶鑫' 答:不能,必须重新创建视图才能查询到新字段。 (4)试图employees-view中无法插入和删除数据,其中的realincome字段也无法修改,为什么? insert into employees_view values('000011','叶鑫','财务部',1500) 答:不能,因为视图employees-view中的字段realincome是基本表列通过计算所得的列,所以无法修改。 (5)修该视图ds_view,将部门号为的部门名称修改为“生产车间”。

实验6 游标的应用(完整版)

数据库实验六游标 实验要求: (1)参照例7-3建立一个嵌套游标应用,其功能是按学号升序列出全体学生信息(学号、姓名、院系名称)及其所修课程名称和考试成绩信息(基于实验2建立的表和实验3插入的数据) (2)按要求按要求逐一读出游标中的记录并显示。 实验代码: declare@xh nchar(8),@xm nchar(10),@yx nchar(10) declare@kcmc nchar(8),@cj nchar(10) declare嵌套游标1cursor for select学生.学号,学生.姓名,学生.院系from学生order by学号 open嵌套游标1 print'----学生信息----' print'学号姓名院系' fetch from嵌套游标1into@xh,@xm,@yx while@@FETCH_STATUS=0 begin print@xh++@xm++@yx declare嵌套游标2cursor for select课程.课程名称,选课.成绩from选课join课程 on课程.课程编号=选课.课程编号 where选课.学号=@xh open嵌套游标2 print'课程名称成绩' fetch from嵌套游标2into@kcmc,@cj while@@FETCH_STATUS=0 begin print@kcmc+@cj fetch from嵌套游标2into@kcmc,@cj end close嵌套游标2 deallocate嵌套游标2 fetch from嵌套游标1into@xh,@xm,@yx end close嵌套游标1 deallocate嵌套游标1

实验12游标的使用

实验十二游标的使用 姓名:廖冬凤学号:140 专业:网络工程班级:07网络(1)班 同组人:无实验日期:2009-11-27 【实验目的与要求】 1.掌握使用SQL-92语法和T-SQL扩展声明游标,并理解相关参数含义。 2.掌握游标的使用过程。 【实验内容与步骤】 12.1、声明游标 (1)使用SQL-92语法声明一只进只读游标CUR1:要求结果集2004年3月18日销售情况。 (2)使用T-SQL扩展声明一滚动动态游标CUR2:要求结果集为客户信息,并能通过该游标修改客户名称列。 12.2、打开游标 打开CUR2游标。 12.3、读取游标中数据 编写程序,实现依次读取游标CUR2中各行数据。 SQL语句: DECLARE @客户编号char(6), @客户名称char(30), @地区char(10), @负责人char(8), @电话char(12) print '游标结果集中的记录总数为'+cast(@@cursor_rows as varchar (10)) fetch next from CUR2

into @客户编号,@客户名称,@地区,@负责人,@电话 while @@fetch_status=0 begin print '客户编号:'+cast(@客户编号as char(6)) +' 客户名称:'+cast(@客户名称as char(30)) +' 地区:'+cast(@地区as char(10)) +' 负责人:'+cast(@负责人as char(8)) +'电话:'+cast(@电话as char(12)) fetch next from CUR2 into @客户编号,@客户名称,@地区,@负责人,@电话 end 12.4、关闭游标 关闭CUR2游标。 12.5、释放游标 释放CUR2游标。 【实验练习】 编写程序,用游标实现从CP表中读取产品编号、产品名称和价格,并将价格在1000-3000(不包含1000和3000)之间的产品名称和价格输出。【分析与回答】 1.什么是游标?为什么要使用游标? 在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条T_SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件 句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,

Oracle 数据库中 游标实验报告

Oracle 数据库实验报告 系别:******* 班级:******* 姓名:******* 学号:******* 指导老师:****

一.实验名称 用带参数游标的FOR循环依此输出每一个部门名称,在部门名称的下面输出该部门的员工姓名和工资,按工资的升序排列。二.实验目的 通过本次实验,逐渐熟悉oracle数据库的应用及输出的格式,更加深刻的了解其输出的语法,变量的定义及赋值和操作环境以及循环结构,异常的捕获,定义,处理,Oracle数据库中表的创建,插入,及表中所需数据的提取,掌握游标的定义,使用。三.实验步骤 开始——运行输入cmd,出来oracle运行界面,代码如下: DECLARE --变量,游标的声明; CURSOR dept_cursor IS SELECT Dname,Deptno FROM DEPT; --游标的定义; CURSOR emp_cursor(v_dept CHAR) IS SELECT Ename,Salary FROM EMP WHERE deptno=v_dept ORDER BY Salary;--按工资升序排序格式输出; BEGIN FOR dept_record IN dept_cursor LOOP --for循环,查询的结果单独的输出; DBMS_OUTPUT.PUT_LINE('部门名称为:

'||dept_record.Dname||chr(10)||'部门编号:'||dept_record.Deptno); --输出语句; FOR emp_record IN emp_cursor(dept_record.Deptno) LOOP DBMS_OUTPUT.PUT_LINE('员工姓名为:'||emp_record.Ename||'员工工资为:'||emp_record.Salary); END LOOP; END LOOP; END; / 四.实验结果

游标操作实验-数据库实验六

广州XX学院 数据库实验报告 专业班级计算机181 实验日期2020.5.1 姓名李XX 学号20181X 实验名称游标操作实验指导教师王x (报告内容包括实验目的、实验设备及器材、实验内容、实验步骤、实验结果、实验小结等) 一、实验目的 使学生加深对游标概念的理解,掌握游标的定义、使用方法及使用游标查询、修改和删除数据表中数据的方法。 二、实验设备及器材 Windows平台,SQL-server 2012 三、实验内容 (1)利用游标逐行显示所查询的数据块的内容。 (2)利用游标显示指定行的数据内容。 (3)利用游标修改和删除指定的数据元组。 四、实验步骤 1.利用T-SQL语句声明一个游标,查询EDUC数据库中Student表中男生的信息,并读取 数据。 首先声明游标,并且打开游标 USE EDUC DECLARE S_sex SCROLL CURSOR FOR SELECT* FROM Student WHERE sex='男' OPEN S_sex (1)读取最后一条记录。 FETCH LAST FROM S_sex (2)读取第一条记录。 FETCH FIRST FROM S_sex (3)读取第5条记录。 FETCH ABSOLUTE 5 FROM S_sex

(4)读取当前记录指针位置后第3条记录。 FETCH RELATIVE-3 FROM S_sex 2. 利用T-SQL语句声明一个游标,查询TSGL数据库中readers表中的信息,并读取数 据。 首先声明游标,并且打开游标 USE TSGL DECLARE R_info SCROLL CURSOR FOR SELECT* FROM readers OPEN R_info (1)读取最后一条记录。 FETCH LAST FROM R_info (2)读取第一条记录。 FETCH FIRST FROM R_info (3)读取第5条记录。 FETCH ABSOLUTE 5 FROM R_info (4)读取当前记录指针位置后第3条记录。 FETCH RELATIVE-3 FROM R_info 五、实验小结 通过此次实验,我基本掌握游标了的定义、使用方法及使用游标查询、修改和删除数据表中数据的方法。

实验08 游标的建立与使用

实验八 实验名称:游标的建立与使用(2课时) 一、实验目的 理解游标的概念、定义方法和使用方法。 二、实验环境 采用Client/Server模式,学生为客户端,是MS SQL SERVER 2000的中文客户端。登录用户名是:学号;密码为:****** 。用户名和密码以任课老师给出为准。 三、实验示例 1、利用游标选取业务部门的员工编号和姓名,并执行游标。 DECLARE cur_emp SCROLL cursor FOR SELECT emp_no,emo_name FROM employee WHERE dept=’业务’ ORDER BY emp_no 执行: OPEN cur_emp SELECT ”cursor打开状态”=@@ERROR SELECT ”cursor内数据条数”=@@CURSOR_ROWS FETCH NEXT FROM cur_emp SELECT ”cursor读取状态”=@@ FETCH _ST ATUS 四、实验内容与步骤 1、利用游标查找所有女业务员的基本情况。 declare cur_emp scroll cursor for select* from employee where sex='F'and title='职员' order by emp_no open cur_emp fetch next from cur_emp while(@@FETCH_STATUS<>-1) begin fetch next from cur_emp end close cur_emp deallocate cur_emp

2、创建一游标,逐行显示表customer.的记录,并且用WHILE结构来测试游标的函数 @@FETCH_STA TUS的返回值 declare cur_cus_new scroll cursor for select* from customer order by cust_id open cur_cus_new select "cursor打开状态"=@@ERROR select "cursor内数据条数"=@@CURSOR_ROWS while(@@FETCH_STATUS=0) begin fetch next from cur_cus_new select "fecth_status值"=@@FETCH_STATUS end select "cursor读取状态"=cursor_status('variable','@cur_cus_new')

数据库原理游标及触发器实验

《数据库原理》实验报告要求 报告的主要内容 一、实验目的 根据各实验项目的实验目的撰写,具体在附件中给出。 二、实验环境 操作系统:Windows XP,数据库管理系统(DBMS):SQL Server2008 三、实验要求 根据各实验项目要求撰写,具体在附件中给出。 四、实验内容及完成情况 自己所完成的内容,进行了哪些操作、编写了哪些程序及执行后的结果,包括一些错误结果及解决办法等。 五、实验体会 具体要求 1、本实验属综合性实验,要使用学校统一的报告纸,附加纸张要挟在报告纸内并左侧装 订; 2、报告纸的封面要填写完整,项目要与实验日历中的项目完全一致,否则将返回重写; 3、报告第四项“实验内容及完成情况”中,只允许对操作结果和程序运行结果进行打印, 其余内容必须用钢笔或水性笔书写,报告要整洁; 4、严禁出现雷同报告,如果出现雷同,雷同报告的所有学生本次实验将作不及格或最低 分处理。如果出现不及格实验项目将取消考试资格。

实验目的及要求 实验三、存储过程及游标 实验目的: 综合运用程序设计和数据结构,使用游标完成具有较完整功能的存储过程。 实验要求: 根据所给的excel表格,完成实验内容。 说明:“招生表”中部分属性保存的是代码值,请按所给代码表完成如下要求。 1.使用SQL语句创建数据库,并在数据库中完成表的创建。(报告中要分析各个表的主键和外键是什么) 创建数据库studentManage

2.写一个存储过程,功能是查询所有招生信息。使用游标完成逐行输出,每行要有行号。 (在查询结果中,要求各类代码要替换成具体的文字信息,例如:政治面貌不要显示“01”,而要显示“中共党员”。)

实验12 游标的使用

实验十二游标的使用 姓名:学号: 专业:网络工程班级: 1 同组人:无实验日期:2009-12-3 【实验目的与要求】 1.掌握使用SQL-92语法和T-SQL扩展声明游标,并理解相关参数含义。 2.掌握游标的使用过程。 【实验内容与步骤】 12.1、声明游标 (1)使用SQL-92语法声明一只进只读游标CUR1:要求结果集2004年3月18日销售情况。 declare CUR1 cursor for select * from CPXSB where 销售日期='2004-3-18' for read only (2)使用T-SQL扩展声明一滚动动态游标CUR2:要求结果集为客户信息,并能通过该游标修改客户名称列。 declare CUR2 cursor scroll for select * from XSS for update of 客户名称 12.2、打开游标 打开CUR2游标。 open CUR2 12.3、读取游标中数据 编写程序,实现依次读取游标CUR2中各行数据。 fetch next from CUR2 while @@FETCH_STATUS=0 BEGIN FETCH NEXT FROM CUR2 END

12.4、关闭游标 关闭CUR2游标。 close CUR2 12.5、释放游标 释放CUR2游标。 DEALLOCATE CUR2 【实验练习】 编写程序,用游标实现从CP表中读取产品编号、产品名称和价格,并将价格在1000-3000(不包含1000和3000)之间的产品名称和价格输出。 DECLARE CUR3 CURSOR FOR SELECT 产品编号,产品名称,价格 FROM CP WHERE 价格>1000 AND 价格<3000 FOR READ ONLY OPEN CUR3 FETCH NEXT FROM CUR3 WHILE @@FETCH_STATUS=0 BEGIN FETCH NEXT FROM CUR3 END CLOSE CUR3 DEALLOCATE CUR3

数据库《游标的使用》实验报告

x x大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称数据库系统概论实验日期 成绩指导教师批改日期 实验名称游标的使用 一、实验目的: ?掌握游标的使用方法 ?掌握使用游标逐行操作SELECT语句结果集的数据的技能 二、实验内容: ?游标声明 ?打开游标 ?读取数据 ?关闭游标 ?释放游标 三、实验步骤: (一)使用游标的几个步骤: 1、声明游标。使用T-SQL语句生成一个结果集,并且定义游标的特征,如游标中的记录是否可以修改; 2、打开游标 3、推进游标指针,从游标的结果集中提取数据,从游标中检索一行或多行数据成为提取数据。 4、逐行处理游标指针所指向的行数据。 5、关闭和释放游标。 例1、 利用标准方式声明一个名称为“student”的游标 use 学生选课 declare student cursor for select Sno,Sname,sage FROM student WHERE sage=19 FOR READ ONLY GO open student // 打开 go fetch next from student //从游标中读取数据 go close student // 关闭 deallocate student // 删除

例2: 声明一个名称为Xuanke的游标 use 学生选课 /*声明一个名称为Xuanke的游标*/ DECLARE XUANKE CURSOR DYNAMIC /*动态的,动力的*/ FOR SELECT Sno,Grade FROM SC WHERE Cno='1' FOR UPDATE OF Sno GO /*打开XUANKE游标*/ OPEN XUANKE GO /*从XUANKE游标中读取数据*/ FETCH NEXT FROM XUANKE GO /*关闭XUANKE游标*/ CLOSE XUANKE /*删除XUANKE游标*/ DEALLOCATE XUANKE

实验9-T-SQL、游标、存储过程、并发控制

XX实验报告 学号 : 系别专业班级姓名 课程名称课程 类型 学时数 实验 名称 T-SQL、游标、存储过程、并发控制 实验目的: 1、了解并能简单应用T-SQL语言。 2、理解并简单的使用游标。 实验内容: 一、了解并应用T-SQL编程语言 (1)用下面的脚本创建一个表并利用循环向表中添加26条记录: USE AdventureWorks CREATE TABLE MYTB(ID INT,VAL CHAR(1)) GO DECLARE @COUNTER INT; SET @COUNTER=0 WHILE(@COUNTER < 26) BEGIN INSERT INTO MYTB VALUES(@COUNTER,CHAR(@COUNTER + ASCII(‘A’))) SET @COUNTER= @COUNTER + 1 END 在Microsoft SQL Server Management Studio中新建一个查询,输入并执行上面的脚本,然后在Microsoft SQL Server Management Studio的“对象资源管理器”中查看MYTB表以及其中的数据。 (2)用下面的脚本查询Employee表中的雇员信息,包括EmployeeID和Gender,Gender的属性根据其值相应地显示为‘男’或‘女’。 USE AdventureWorks SELECT EmployeeID,Gender= CASE Gender WHEN ‘M’ THEN ‘Male’ WHEN ‘F’ THEN ‘Female’ END FROM HumanResources.Employee 在Microsoft SQL Server Management Studio中新建一个查询,输入并执行上面的脚本,观察执行结果。 (3)下面的脚本显示了T-SQL中的错误处理。

数据库实验-实验 游标

实验报告 一、实验目的: ?掌握游标的使用方法 ?掌握使用游标逐行操作SELECT语句结果集的数据的技能 二、实验内容: ?游标声明 ?打开游标 ?读取数据 ?关闭游标 ?释放游标 三、实验步骤: (一)使用游标的几个步骤: 1、声明游标。使用T-SQL语句生成一个结果集,并且定义游标的特征,如游标中的记录是否可以修改; 2、打开游标 3、推进游标指针,从游标的结果集中提取数据,从游标中检索一行或多行数据成为提取数据。 4、逐行处理游标指针所指向的行数据。 5、关闭和释放游标。 1、利用标准方式声明一个名称为“student”的游标 use 学生 declare student cursor for select Sno,Sname,Sbirthday FROM student WHERE Sbirthday=19 FOR READ ONLY GO open student // 打开 go fetch next from student //从游标中读取数据 fetch next from student go close student // 关闭 deallocate student // 删除 2:声明一个名称为Xuanke的游标 /*声明一个名称为Xuanke的游标*/ DECLARE XUANKE CURSOR DYNAMIC /*动态的,动力的*/

FOR SELECT Sno,Degree FROM SCORE WHERE Cno='3-105' FOR UPDATE OF Sno GO /*打开XUANKE游标*/ OPEN XUANKE GO /*从XUANKE游标中读取数据*/ FETCH NEXT FROM XUANKE GO /*关闭XUANKE游标*/ CLOSE XUANKE /*删除XUANKE游标*/ DEALLOCATE XUANKE 3:声明一个游标,可前后滚动,可对选课表2中的成绩进行修改 /*声明一个游标,可前后滚动,可对选课表中的成绩进行修改 DECLARE XK CURSOR FOR SELECT*FROM SCORE FOR UPDATE OF Degree /*打开游标XK*/ OPEN XK SELECT'游标数据行数'=@@CURSOR_ROWS /* 全局变量@@CURSOR_ROWS返回最后打开的游标中当前存在的合格行的数量。 返回值为-m,表示游标被异步填充。返回值-m是键集中当前的行数。 返回值为-1,表示游标为动态。因为游标可反映所有更改,所以符合游标的行数不断变化。因此永远不能确定地说所有符合条件的行均已检索到。 返回值为,没有被打开的游标,没有符合最后打开的游标的行,或最后打开的游标已被关闭或被释放。 返回值为n,游标已完全填充。返回值n是在游标中的总行数。 @@ROWCOUNT

实验报告3游标的使用

山西大学计算机与信息技术学院 实验报告 姓名许小珍学号2010242097 专业班级软件一班 课程名称数据库原理实验实验日期2012.04.17 成绩指导教师庞继芳批改日期实验名称游标的使用 一、实验目的: 掌握游标的使用方法;掌握使用游标逐行操作SELECT语句结果集的数据的技能。 二、实验内容: 游标声明;打开游标;读取数据;关闭游标;释放游标 三、实验步骤: 1、声明游标。使用T-SQL语句生成一个结果集,并且定义游标的特征,如游标中的记录是否可以修改; 2、打开游标 3、推进游标指针,从游标的结果集中提取数据,从游标中检索一行或多行数据成为提取数据。 4、逐行处理游标指针所指向的行数据。 5、关闭和释放游标。 例1:查看学生表中年龄为19的学生的学号和姓名。 --声明游标 --use stu_DB declare stuCur cursor for select sno,sname from student where sage=19 for read only go --打开游标 open stuCur go --处理游标中的数据 fetch next from stuCur go --关闭游标 close stuCur --释放游标 deallocate stuCur 如图:

例2: 声明一个名称为Xuanke的游标DECLARE XUANKE CURSOR DYNAMIC FOR SELECT sno,grade FROM sc WHERE cno='02002' FOR UPDATE OF sno GO OPEN XUANKE GO FETCH NEXT FROM XUANKE GO CLOSE XUANKE DEALLOCATE XUANKE

实验十 游标 实验指导

实验十游标实验指导 在MS SQL Server中没有描述表中单一记录的表达形式,除非使用where子句限制只有一条记录被选中。所以必须借助于游标来进行面向单条记录的数据处理。游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制,游标允许应用程序对查询语句的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作,它还提供对基于游标位置而对表中数据进行删除或者更新的能力。 游标的主要用途就是在T-SQL脚本程序、存储过程、触发器中对查询语句返回的结果集进行逐行逐字段处理,把一个完整的数据表按行分开,一行一行地逐一提取记录,并从这一记录中逐一提取各项数据,按照需要对相应行进行查询、修改或删除这些记录。 游标主要包含两部分:游标结果集(由定义游标的SELECT语句返回的行的集合)和游标位置(指向这个结果集中的某一行的指针)。 游标的使用步骤:声明游标、打开游标、提取数据、关闭游标、释放游标。 一、声明游标 为游标指定获取数据时的SELECT语句。声明的游标并不会检索任何数据,只是为游标指定SELECT的查询范围。语句格式为: DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR FOR select_statement [ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ] 其中: ●cursor_name:所定义的Transact-SQL 服务器游标的名称。cursor_name 必须符合 标识符规则。 ●INSENSITIVE:定义一个游标,以创建将由该游标使用的数据的临时复本。对游 标的所有请求都从tempdb中的这一临时表中得到应答;因此,在对该游标进行提 取操作时返回的数据中不反映对基表所做的修改,并且该游标不允许修改。使用 SQL-92 语法时,如果省略INSENSITIVE,则已提交的(任何用户)对基础表的 删除和更新都反映在后面的提取中。 ●SCROLL:指定所有的提取选项(FIRST、LAST、PRIOR、NEXT、RELATIVE、 ABSOLUTE)均可用。如果未在SQL-92 DECLARE CURSOR 中指定SCROLL, 则NEXT 是唯一支持的提取选项。如果也指定了FAST_FORWARD,则不能指 定SCROLL。 ●select_statement:定义游标结果集的标准SELECT 语句。在游标声明的 select_statement 内不允许使用关键字COMPUTE、COMPUTE BY、FOR BROWSE 和INTO。Microsoft 如果select_statement 中的子句与所请求的游标类型的功能 有冲突,则SQL Server 会将游标隐式转换为其他类型。有关详细信息,请参阅使 用隐式游标转换。 ●READ ONLY:禁止通过该游标进行更新。在UPDATE或DELETE语句的WHERE

基本测量实验报告

基本测量(实验报告格式) 一、实验项目名称实验一:长度和 圆柱体体积的测量实验二:密度的 测量 二、实验目的实 验一目的: 1、掌握游标的原理,学会正确使用游标卡尺。 2、了解螺旋测微器的结构和原理,学会正确使用螺旋测 微器。 3、掌握不确定度和有效数字的概念,正确表达测量结果。实验二目的: 1、掌握物理天平的正确使用方法。 2、用流体静力称量法测定形状不规则的固体的密度。 3、掌握游标卡尺,螺旋测位器,物理天平的测量原理及正确使用方法 4、掌握不确定度和有效数字的概念,正确表达测量结果 5、学会直接测量量和间接测量量的不确定度的计算,正确表达测量结果

三、实验原理 实验一原理: 1、游标卡尺的使用原理 游标副尺上有 n 个分格,它和主尺上的(n-1)格分格的总长度相等,一般主尺上每一分格的长度为 1mm,设游标上每 一个分格的长度为 x,则有 nx=n-1,主尺上每一分格与游标上 每一分格的差值为 1-x= (mm)是游标卡尺的最小读数,即游 标卡尺的分度值。若游标上有 20 个分格,则该游标卡尺的分度值为 =0.05mm,这种游标卡尺称为 20 分游标卡尺;若游标上有 50 个分格,其分度值为=0.02mm,称这种游标卡尺为 50 分游标卡尺。 2、螺旋测微器的读数原理: 螺旋测微器是依据螺旋放大的原理制成的,即螺杆在螺母中旋转一周,螺杆便沿着旋转轴线方向前进或后退一个螺距的距离。因此,沿轴线方向移动的微小距离,就能用圆周上的读数表示出来。

3、当待测物体是一直径为 d、高度为 h 的圆柱体 时,物体的体积为:V 4 d2h只要用游标卡尺测 出高度 h,用螺旋测微器测出直径 d,代入上式即可。

实验六游标操作

实验六游标操作 TPMK standardization office【 TPMK5AB- TPMK08- TPMK2C- TPMK18】

实验六游标操作一、实验目的 使学生加深对游标概念的理解,掌握游标的定义、使用方法查询、修改删除数据的方法 二、实验内容 (1)利用游标逐行显示所查询的数据块的内容。 (2)利用游标显示指定行的数据内容。 (3)利用游标修改和删除指定的数据元组。 三、实验指导 1、利用游标逐行显示数据 实验6.1 在JXGL数据库的S表中定义一个包含sno,、sname、 age 、sex、sdept 的滚动游标,游标的名称为“S_cursor”,并将游标中的数据逐条显示出来。 (1)在数据库引擎查询文档中输入以下语句: 实验6.2 在S表中定义一个所在系为CS ,包含sno、sname、sex、age、 Sdept的游标,游标的名称为cs_cursor,完成以下操作: 1、读取第一行数据;

3、利用游标修改数据 实验6.3 在S表中定义一个所在系部为CS,包含sno, sname,sex 的游标,灖垢名称为cs_sursor,并将游标中的绝对位置为2 的学生的姓名改为“王南”,性别改为“女”。 4、利用游标删除数据 实验6.4 在S表中定义一个包含学号、姓名、性别、的游标,灖垢名称为cs_cursor 并将游标中的绝对位置为2的学生数据删除。 5、利用游标遍历数据表 实验6.5 在S、SC表中定义一个包含学号、姓名和成绩的游标,游标的名称为 cs_cursor, 将游标遍历整个数据表(经常使用系统变量@@fetch_status来控制WHILE循环中的游标活动) 6、利用游标备份数据库 实验6.6 利用游标在串行状态下执行用户数据库文件备份

实验12游标的使用

实验十二游标的使用 姓名:廖冬凤学号:20070721140 专业:网络工程班级:07网络(1)班 同组人:无实验日期:2009-11-27 【实验目的与要求】 1.掌握使用SQL-92语法和T-SQL扩展声明游标,并理解相关参数含义。 2.掌握游标的使用过程。 【实验内容与步骤】 12.1、声明游标 (1)使用SQL-92语法声明一只进只读游标CUR1:要求结果集2004年3月18日销售情况。 (2)使用T-SQL扩展声明一滚动动态游标CUR2:要求结果集为客户信息,并能通过该游标修改客户名称列。

12.2、打开游标 打开CUR2游标。 12.3、读取游标中数据 编写程序,实现依次读取游标CUR2中各行数据。 SQL语句: DECLARE @客户编号char(6), @客户名称char(30), @地区char(10), @负责人char(8), @电话char(12) print '游标结果集中的记录总数为'+cast(@@cursor_rows as varchar (10)) fetch next from CUR2 into @客户编号,@客户名称,@地区,@负责人,@电话 while @@fetch_status=0 begin print '客户编号:'+cast(@客户编号as char(6)) +' 客户名称:'+cast(@客户名称as char(30))

+' 地区:'+cast(@地区as char(10)) +' 负责人:'+cast(@负责人as char(8)) +'电话:'+cast(@电话as char(12)) fetch next from CUR2 into @客户编号,@客户名称,@地区,@负责人,@电话end 12.4、关闭游标 关闭CUR2游标。 12.5、释放游标

相关主题
文本预览
相关文档 最新文档