刚接触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
DECLAREovarchar(128);
DECLAREnoint;
DECLAREcur_1CURSORFORSELECTidFROMtest;#把select出来的数据全部保存到游标cur_1中
DECLARECONTINUEHANDLERFORNOTFOUNDSETno=1;#当读到数据的最后一条时,设置no变量为1
SETno=0;#初始化变量no为0
OPENcur_1;#打开游标
whileno=0do#判断是不是到了最后一条数据
fetchcur_1intoo;#读取游标中的数据一一复给变量o。
updatetestsetusername='1988'whereid=o;#这个不用解释了吧
endwhile;
closecur_1;#最后关闭游标.游标里面存放了那么多数据总是要清理掉的吧。
end
个人感觉我的这个例子无法体现出游标的作用,但是大家不凡通过这个例子来看看游标的一些语法。
转载请注明出处:http://www.ttlsa.com/html/3014.html