SQLServer游标

一.游标的作用:

定位到结果集中的某一行(结果集:在完成了数据库的操作之后出现的所有的结果的集合)

二.游标分为三类

1.静态游标(static):操作游标时即使数据发生变化,游标中的数据也不会发生变化

2.动态游标(dynamic):操作游标时若数据发生变化,则游标中数据同样改变

3.键集驱动游标(keyset):在操作游标时,被标记的列,其他列和游标中的数据改变,游标中的数据不变

三.游标的使用

1.创建游标

语法为:

declare 游标名 cursor scroll for select 创建游标的列名 from 创建游标的表名

难理解部分的解释:

cursor为游标,表示我们将要创建的数据的类型

scroll为一个可选参数,表示是否能够滚动使用游标,若不加上此参数则游标只能向下移动

2.打开游标

语法为:

open 游标名

3.关闭游标

语法为:

close 游标名

4.删除游标

语法为:

deallocate 游标名

5.使用游标提取数据

例如:

--提取第一行的数据
fetch first from test 
--test是我创建的游标的名字

--提取最后一行的数据
fetch last from test 

--提取第二行的数据
fetch absolute 2 from test 

--提取当前游标所在行下移两行的数据
fetch relative 2 from test 

--提取当前游标所在行下移一行的数据
fetch next from test

--提取当前游标所在行上移一行的数据
fetch prior from test  

6.游标的具体使用实例

(1).使用游标提取数据之后将数据存入变量之中,用于查询该列信息

declare @search varchar(50) --创建一个类型为varchar,大小为50,名字为search的变量
fetch absolute 2 from test into @search --将第二行的数据提取到search变量之中
select * from Student where StuId = @search --在Student表中查找与存入变量之中的数据相同的具体数据

(2).遍历游标

declare @search varchar(50) --定义一个类型为varchar,大小为50,名字为search的变量
fetch absolute 1 from test into @search --提取出第一行的数据到search变量中进行存储
--在我们使用游标时需要注意有一全局变量名字为fetch_status表示数据是否提取成功,若为0,则表示提取成功,若为-1,则表示提取失败
while @@fetch_status = 0 使用while循环进行遍历
    begin 
        print @search --打印提取出的数据
        fetch next from test into @search --再提取下一行的数据
    end

(3).使用游标进行数据的修改和删除

--修改数据
fetch absolute 3 from test --提取出第三行的游标数据
update Student set Score = 100 where current of test --修改游标所在行的学生的成绩数据为100

--删除数据
fetch absolute 3 from test --提取出第三行的游标数据
delete from student where current of test --删除游标所在行的学生数据

7.指向多列数据的游标

(1).创建语法:

declare 游标名 cursor scroll for select 列名1,列名2...列名n from 表名

(2).使用

创建与列数相同数量的变量数,使用不同的变量对游标进行操作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值