您的位置:首页 > 数据库 > MySQL

mysql游标实例演示

2016-07-15 11:41 477 查看
刚接触mysql游标的朋友们可能一时半会儿无法理解mysql游标是什么,游标怎么用,这边拿了一个简单的mysql游标实例来演示给大家,或许大家看了就能马上理解什么是游标,一般什么情况下使用游标.

这篇文章我3年前在百度博客上发表的,很基础,不过确实比较好理解,百度博客已经不维护了。拿来这边和ttlsa的网友们分享一下.文章入门,大神可以跳过.

整体感觉游标用得相对来说比较少,平时也感觉不出它有什么作用,现在也是朦朦胧的概念吧。谈谈我对他的理解吧。游标其实就是一个数据集合。我们把我们查询 出来的所有数据放到一个集合内,这个集合就叫做游标。而我们读取其中的内容时,仅仅只能一条挨着一条往下读或者往前读。不能跳这读。所有的数据集都读取到 一个游标内,我们可以对他们中间的每一条数据做不同的操作,暂时仅仅而已。读完之后我们需要关闭游标,释放内存空间。以下是一个例子:

begin
DECLARE o varchar(128);
DECLARE no int;
DECLARE cur_1 CURSOR FOR SELECT id FROM test; #把select出来的数据全部保存到游标cur_1中
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no=1; #当读到数据的最后一条时,设置no变量为1
SET no=0; #初始化变量no为0
OPEN cur_1; #打开游标
while no=0 do #判断是不是到了最后一条数据
fetch cur_1 into o; #读取游标中的数据一一复给变量o。
update test set username='1988' where id=o;#这个不用解释了吧
end while;
close cur_1;#最后关闭游标.游标里面存放了那么多数据总是要清理掉的吧。
end

1
2
3
4
5
6
7
8
9
10
11
12
13

begin

DECLARE o
varchar(128);

DECLARE
no int;

DECLARE cur_1
CURSOR FOR
SELECT id FROM
test;
#把select出来的数据全部保存到游标cur_1中
DECLARE
CONTINUE HANDLER
FOR NOT
FOUND SET no=1;
#当读到数据的最后一条时,设置no变量为1

SET no=0;
#初始化变量no为0
OPEN
cur_1;
#打开游标

while no=0
do #判断是不是到了最后一条数据
fetch
cur_1 into
o;
#读取游标中的数据一一复给变量o。

update test set
username='1988'
where id=o;#这个不用解释了吧
end
while;

close cur_1;#最后关闭游标.游标里面存放了那么多数据总是要清理掉的吧。
end

个人感觉我的这个例子无法体现出游标的作用,但是大家不凡通过这个例子来看看游标的一些语法。

转自:http://www.ttlsa.com/html/3014.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: