mysql数据库怎么使用游标
1、新建一个cj表,输入数据,zongfen为0,下面用游标来计算总分,并且更新cj表的zongfen字段。
CREATE TABLE `cj` ( `cid` int(11) NOT NULL AUTO_INCREMENT, `yuwen` int(11) NOT NULL, `shuxue` int(11) NOT NULL, `yingyu` int(11) NOT NULL, `zongfen` int(11) NOT NULL, PRIMARY KEY (`cid`), KEY `zid` (`zongfen`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

2、在当前数据库中建立一个存储过程。
DELIMITER $$
CREATE
PROCEDURE `test`.`cj_zongfen`()
BEGIN
#过程代码
END$$
DELIMITER ;

3、在过程中定义3个局部变量,把游标查询成绩存入到变量中。
DELIMITER $$
CREATE
PROCEDURE `test`.`cj_zongfen`()
BEGIN
DECLARE yw INT;#语文成绩
DECLARE sx INT;#数学成绩
DECLARE yy INT;#英语成绩
DECLARE d INT;
END$$
DELIMITER ;

4、定义nf变量,当游标查询完毕后nf的值为false,退出游标循环。
DECLARE nf BOOLEAN DEFAULT TRUE;
DECLARE zongfen_cursor CURSOR FOR SELECT yuwen,shuxue,yingyu,cid FROM cj;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET nf=FALSE;
OPEN zongfen_cursor;

5、把游标当前查询的值存入到变量中,修改表中zongfen的值。
FETCH zongfen_cursor INTO yw,sx,yy,d;
WHILE nf DO
UPDATE cj SET zongfen=yw+sx+yy WHERE cid=d;
FETCH zongfen_cursor INTO yw,sx,yy,d;
END WHILE;

6、保存存储过程,执行call cj_zong分();
查看数据,每一个记录总分存入到zongfen字段中。

7、存储过程完整代码.
CREATE DEFINER=`root`@`localhost` PROCEDURE `cj_zongfen`()
BEGIN
DECLARE yw INT;#语文成绩
DECLARE sx INT;#数学成绩
DECLARE yy INT;#英语成绩
DECLARE d INT;
DECLARE nf BOOLEAN DEFAULT TRUE;
DECLARE zongfen_cursor CURSOR FOR SELECT yuwen,shuxue,yingyu,cid FROM cj;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET nf=FALSE;
OPEN zongfen_cursor;
FETCH zongfen_cursor INTO yw,sx,yy,d;
WHILE nf DO
UPDATE cj SET zongfen=yw+sx+yy WHERE cid=d;
FETCH zongfen_cursor INTO yw,sx,yy,d;
END WHILE;
END$$
