对于游标的一些自我看法

游标

定义
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。
简单的说 游标是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。
Transact_SQL 游标
Transact_SQL 游标由DECLARE CURSOR 语法定义、主要用在Transact_SQL脚本、存储过程和触发器中。Transact_SQL 游标主要用在服务器上,由从客户端发送给服务器的Transact_SQL 语句或是批处理、存储过程、触发器中的Transact_SQL 进行管理。 Transact_SQL 游标不支持提取数据块或多行数据。这也是我们最常用的一种游标。

下面举例游标的常用方法

声明游标

declare 游标名 CURSOR
for select 条件  from 表名

打开游标

open 游标名

直接open就行

下面举个例子

简单说明游标的使用

在这里插入图片描述
首先建一个表如上
在这里插入图片描述
可以自行添加数据,最后一行不要添加数据,这是我执行之后的效果

根据价格设置每本书的等级
–价格<50 便宜
–>=50-100 中等
–>100 贵

这边设置条件代码如下

--声明游标
declare cur_set_lever CURSOR
for select id,Price from books
--打开游标
open cur_set_lever
--获取数据 id price 
declare @id int 
declare @price decimal(18,2)
fetch next from cur_set_lever into @id,@price
print @id
--循环获取
while(@@FETCH_STATUS=0)
begin 
--修改等级
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_lever into @id,@price
end
--关闭游标
close cur_set_lever
--释放游标
deallocate cur_set_lever

得到如下运行效果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lxz2018173805/article/details/106337989
今日推荐