mysql中的游标怎么界说 , 怎么利用 , 把游标查询的数据逐个处置 。 下面界说一个游标 , 把学生的成就加起来存入到总分的字段中 。 我写的经验对你进修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
#过程代码
$$
DELIMITER ;
文章插图
3在过程中界说3个局部变量 , 把游标查询成就存入到变量中 。
DELIMITER $$
CREATE
PROCEDURE `test`.`cj_zongfen`()
BEGIN
DECLARE yw INT;#语文成就
DECLARE sx INT;#数学成就
DECLARE yy INT;#英语成就
DECLARE d INT;
$$
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;
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;
推荐阅读
- C4D 晶格工具怎么使用
- 安卓9.0怎么将应用双开
- 怎么允许程序通过windows防火墙
- 小度音箱怎么连接QQ音乐
- QQ怎么把群应用放到面板上
- 怎么删除QQ好友分组
- QQ聊天看不到别人发的表情怎么办
- 唯品会怎么联系人工客服
- 唯品会怎么扫描二维码
- ps怎么使用网页版在线制作