MySQL中声明游标的命令是,MySQL游标(cursor) 定义及使用

概念

游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。

使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。

用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。

游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。

优点

1、允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。

2、提供对基于游标位置的表中的行进行删除和更新的能力。

3、游标实际上作为面向集合的数据库管理系统(RDBMS)和面向行的程序设计之间的桥梁,使这两种处理方式通过游标沟通起来。

原理

游标就是把数据按照指定要求提取出相应的数据集,然后逐条进行数据处理。

使用游标的顺序

声名游标、打开游标、读取数据、关闭游标、删除游标。

使用游标(cursor)

1.声明游标

DECLARE cursor_name CURSOR FOR select_statement

这个语句声明一个游标。也可以在子程序中定义多个游标,但是一个块中的每一个游标必须有唯一的名字。声明游标后也是单条操作的,但是不能用SELECT语句不能有INTO子句。

2. 游标OPEN语句

OPEN cursor_name这个语句打开先前声明的游标。

3. 游标FETCH语句

FETCH cursor_name INTO var_name [, var_name] ...这个语句用指定的打开游标读取下一行(如果有下一行的话),并且前进游标指针。

4. 游标CLOSE语句

CLOSE cursor_name  这个语句关闭先前打开的游标。

特性

1,只读的,不能更新的。

2,不滚动的

3,不敏感的,不敏感意为服务器可以活不可以复制它的结果表

游标(cursor)必须在声明处理程序之前被声明,并且变量和条件必须在声明游标或处理程序之前被声明。

64b8ecaaf962e74525fb1a2404bce255.png

aa2b7bca739bca25cf60a4dee77a601835b.jpg

d6ec3c5b4085255525a99ecf029bef4d634.jpg

delimiter $$create procedure pa(out sum bigint)begin

declare iii int;declare done int default 0;

#1、游标的定义declare c_person cursor for select id fromrandtable;

# 捕获系统抛出的not found 错误,如果捕获到,将 done 设置为 1相当于try异常declare continue handler for not found set done=1;set sum=0;

#2、打开游标openc_person;

www:loop

#3、使用游标fetch c_person intoiii;

# 如果发生异常if done = 1 thenleave www;end if;set sum = sum +iii ;endloop ;

#4、关闭游标closec_person;end$$

delimiter ;--调用

set @sum = 0;

call pa(@sum);select @sum;

View Code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值