游标是从表中检索出的结果集,可以被看作指向结果集中某一行的指针(Pointer)与结果集进行交互的机制。游标的每个时间点只能指向一行,但是可以根据需要指向结果集中其他的行。
游标从概念上讲是基于数据库的表返回结果集,由于它指示结果集中的当前位置,就像计算机屏幕上的光标指示当前位置一样,“游标”由此得名。游标概述游标是通过游标库来实现的,而游标库常常是作为数据库系统或数据访问API的一部分而得以实现的软件,用来管理从数据源返回的数据的结果集。游标跟踪结果集中的位置,并允许对结果集逐行执行多个 *** 作,在这个过程中可能返回至原始表,也可能不返回至原始表。
在初始的时候,游标被放置在结果集中第一行的前面。为了使游标指向第一行,要执行FETCH动作。当游标指向结果集中某行的时候,可以对这行数据进行加工处理,要想得到下一行数据,要继续执行FETCH *** 作。FETCH *** 作可以重复执行,直到完成结果集中的所有行。
1.游标的作用对查询数据库所返回的记录进行遍历。
2.游标的属性((1)游标是只读的,也就是不能更新它。
(2)游标是不能滚动的,也就是只能在一个方向上进行遍历,不能在记录之间随意进退,也不能跳过某些记录。
(3)避免在已经打开游标的表上更新数据。游标使用游标对关系数据库来说极其重要,它是 *** 作数据库服务器上记录的一种重要机制。在存储过程中使用游标,经过声明游标、打开游标、 *** 作游标和关闭游标等几个步骤,将游标指向的数据取到本地,在结束时关闭游标。
1.游标的使用步骤(1)声明游标语法格式:DECLARE+游标名+CURSORFOR+SELECT语句DECLARE为声明游标的关键字,后面跟游标的名称,CURSORFOR表示游标要 *** 作的数据结果集,后面跟一条数据库的SELECT检索语句。例如,下面语句声明了一个叫mycoursor的游标。DECLAREmycoursorCURSORFORselectuser_name
游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。主语言是面向记录的,一组主变量一次只能存放一条记录。仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求。嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式。在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?这时我们就会使用游标。-----------------------------------------------------------
使用游标会降低执行效率,平时尽可能不要用
declare @column1 varchar(10)
declare @column2 varchar(10)
declare cursor1 cursor for select column1, column2 from tablename --声明游标(用select语句,可以通过where等语句限定游标取的结果集)
open cursor1 --打开游标
fetch next from cursor1 into @column1, @column2 --取游标的值到变量
while (@@fetch_status=0) --有记录的话
begin
--处理
fetch next from cursor1 into @column1, @column2 --取下一个
end
close cursor1 --关闭游标
deallocate cursor1 --释放游标
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)