对于游标的一些自我看法

游标

定义
游标(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

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

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值