游标是什么
游标是SQL 的一种数据访问机制。可以将游标简单的看成是查询的结果集的一个指针,可以根据需要在结果集上面来回滚动,浏览需要的数据。
为什么要使用游标
游标一般用于把通过脚本得到的结果集的内容在用于其它的SQL语句中。或者是当你需要对select出来的结果循环处来理的时候就需要用到游标。
游标的生命周期
游标的生命周期包含有五个阶段:声明游标、打开游标、读取游标数据、关闭游标、释放游标。
怎么使用游标
book表


--定义游标
declare cur_set_levers CURSOR
for select id, Price from books
--打开游标
open cur_set_levers
declare @id int
declare @price decimal(18,2)
fetch next from cur_set_levers into @id,@price --将游标向下移1行,获取的数据放入之前定义的变量@id,@price中
print @id
--循环获取
while(@@FETCH_STATUS=0)--读取数据是否成功
begin
print @id
if(@price<50)
update books set Levels='便宜' where id=@id
else if(@price<100)
update books set Levels='中等' where id=@id
else
update books set Levels='贵' where id=@id
fetch next from cur_set_levers into @id,@price --将游标向下移1行,获取的数据放入之前定义的变量@id,@price中
end
close cur_set_levers --关闭游标
deallocate cur_set_levers --释放游标
执行之后

总结
游标虽然能很方便的处理select出来的结果,但是游标执行会影响脚本执行速度,占用内存十分高,容易造成内存泄露。
游标是SQL数据访问机制,如同结果集的指针,允许前后滚动处理数据。通常用于将脚本结果用于其他SQL语句或循环处理。其生命周期包括声明、打开、读取、关闭和释放五个阶段。虽然方便,但游标可能影响执行速度并占用大量内存,易导致内存泄露。
689

被折叠的 条评论
为什么被折叠?



