游标的定义
游标是SQL 的一种数据访问机制。可以将游标简单的看成是查询的结果集的一个指针,可以根据需要在结果集上面来回滚动,浏览需要的数据。
游标的优缺点
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果中的所有行,但他一次只指向一行。
概括来讲,SQL的游标是一种临时的数据库对象,既可以用来存放数据库表中的数据行副本,也可以指向存储在数据库中的数据行的指针。游标提供了在逐行的基础上操作表中数据的方法。
游标的一个常见用途就是保存查询结果,以便以后使用。游标的结果集是有Select语句产生,如果处理过程需要重复使用一个记录集,那么创建一次游标而重复使用若干次,比重复查询数据库要快的多。
大部分程序设计语言都能使用游标来检索SQL数据库中的数据,在程序中嵌入游标和在程序中嵌入SQL语句相同。
游标语法
--定义游标
declare 游标名 Cursor for sql查询语句
--打开游标
open 游标名
--将游标下移一行
fetch next from 游标名 into 所需数据
--关闭游标
close 游标名
--释放游标
deallocate 游标名
游标使用实例
数据库表结构
Custom表
实现功能:根据ConsumCount修改ConsumLevel
--定义
declare myCus Cursor for select id,ConsumCount from Customer
--打开
open mycus
declare @myid int
declare @mycount int
--读取
fetch next from mycus into @myid,@mycount
while(@@FETCH_STATUS=0)
begin
if(@mycount<500)
update Customer set ConsumLevel='低消费' where id=@myid
else if(@mycount<1000)
update Customer set ConsumLevel='中消费' where id=@myid
else
update Customer set ConsumLevel='高消费' where id=@myid
fetch next from mycus into @myid,@mycount
end
--关闭
close mycus
--释放
deallocate mycus