游标小知识

本文介绍了SQL游标的基本概念,探讨了游标的优缺点,并详细阐述了定义、打开、操作和关闭游标的步骤。通过实例展示了如何使用游标进行特定数据处理,如消费等级划分和按日期范围显示消费总数。
摘要由CSDN通过智能技术生成

1、游标是什么

游标是SQL 的一种数据访问机制。可以将游标简单的看成是查询的结果集的一个指针,可以根据需要在结果集上面来回滚动,浏览需要的数据。

2、游标的优劣

优点:
游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力
缺点:
处理大数据量时,效率低下,占用内存大,一般来说,能使用其他方式处理数据时,最好不要使用游标,除非是当你使用while循环,子查询,临时表,表变量,自建函数或其他方式都无法处理某种操作的时候,再考虑使用游标

使用 DECLARE CURSOR 语句将 SQL 游标与 SELECT 语句相关联。另外,DECLARE CURSOR 语句还定义游标的特性,例如游标名称以及游标是只读还是只进。

3、使用游标的步骤

1 、定义游标—Cursor [CursorName] IS;

2 、打开游标—Open [CursorName];

3 、操作数据—Fetch [Cursorname];

4 、关闭游标—Close [Cursor Name],这个步骤绝对不可以遗漏。

4、游标的使用

使用 OPEN 语句执行 SELECT 语句并填充游标。

使用 FETCH INTO 语句提取单个行,并将每列中的数据移至指定的变量中。然后,其他 SQL 语句可以引用那些变量来访问提取的数据值。SQL 游标不支持提取行块。

使用 CLOSE 语句结束游标的使用。关闭游标可以释放某些资源,例如游标结果集及其对当前行的锁定,但如果重新发出一个 OPEN 语句,则该游标结构仍可用于处理。由于游标仍然存在,此时还不能重新使用该游标的名称。DEALLOCATE 语句则完全释放分配给游标的资源,包括游标名称。释放游标后,必须使用 DECLARE 语句来重新生成游标。

5、举例

实现要求:修改消费等级(ConsumerLevel)这个字段,当消费金额(ConsumerAmount)>1000时,等级为高消费,500-1000包含500,不包含1000,等级为中消费,小于500 等级为低消费


```sql
--声明游标
declare cur_cust_level Cursor
for select ID,ConsumerAmount from Customers

--打开游标
open cur_cust_level

--浏览数据,取数据ID,CustomerAccount
--取数据
--拿之前先定义两个变量
declare @id int
declare @Cacount int
fetch next from cur_cust_level into @id,@Cacount

--循环往下
while
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值