当前位置:网站首页 > 创业 > 正文

mysql数据库怎么使用游标

0 张子豪 张子豪 2025-10-10 17:35 1

mysql中的游标怎么界说,怎么利用,把游标查询的数据逐个处置。下面界说一个游标,把学生的成就加起来存入到总分的字段中。我写的经验对你进修mysql有帮忙的话,给我投票、点赞或者保藏!

方式/步调

  1. 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. 2

    在当前数据库中成立一个存储过程。

    DELIMITER $$

    CREATE

        PROCEDURE `test`.`cj_zongfen`()

        BEGIN

                             #过程代码

        END$$

    DELIMITER ;

  3. 3

    在过程中界说3个局部变量,把游标查询成就存入到变量中。

    DELIMITER $$

    CREATE

        PROCEDURE `test`.`cj_zongfen`()

        BEGIN

    DECLARE yw INT;#语文成就

    DECLARE sx INT;#数学成就

    DECLARE yy INT;#英语成就

    DECLARE d INT;

        END$$

    DELIMITER ;

  4. 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. 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. 6

    保留存储过程,执行call cj_zong分();

    查看数据,每一个记实总分存入到zongfen字段中。

  7. 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$$

来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!


本文链接:https://www.ibaiwen.com/web/206385.html

张子豪

张子豪

TA很懒,啥都没写...

@百闻娱乐 本站部分内容转自互联网,若有侵权等问题请及时与本站联系,我们将在第一时间删除处理。 | 粤ICP备2024343649号 | (地图