MySQL中怎么使用游标
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了MySQL中怎么使用游标,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。要明白什么是游标,首先要了解存储过程,存储过程
千家信息网最后更新 2026年11月02日MySQL中怎么使用游标
这篇文章主要介绍了MySQL中怎么使用游标,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
要明白什么是游标,首先要了解存储过程,存储过程是事先经过编译并且存储在数据库中的一段SQL语句,他可以接受参数,也可以在其中使用IF语句、设置变量、循环等,比如下面语句用于创建一个存储过程。【相关推荐:mysql视频教程】
delimiter $$create procedure select_all() begin select * from user; end;$$
调用存储过程。
mysql> call select_all;$$
存储过程可以减少数据库和应用服务器之间的传输,对提供数据库处理效率还是有好处的,而游标(Cursor)有的地方又叫光标,可以在存储过程中,对结果集进行循环处理,但是目前,MySQL只允许我们从SELECT语句从头到尾获取结果集中的每一行,无法从最后一行获取到第一行,也无法直接跳转到结果集中的指定行。
使用游标有以下几个步骤。
1、游标定义
DECLARE cursor_name CURSOR FOR select_statement
2、打开游标
OPEN cursor_name;
3、获取游标中的数据
FETCH cursor_name INTO var_name [, var_name]...
4、关闭光标
CLOSE cursor_name;
5、释放光标
DEALLOCATE cursor_name;
实例
创建表
CREATE TABLE cursor_table(id INT ,name VARCHAR(10),age INT)ENGINE=innoDB DEFAULT CHARSET=utf8;insert into cursor_table values(1, '张三', 500);insert into cursor_table values(2, '李四', 200);insert into cursor_table values(3, '王五', 100);insert into cursor_table values(4, '老六', 20);create table cursor_table_user(name varchar(10));
下面我们通过游标,遍历cursor_table表,把年龄大于30的人名存放到cursor_table_user
drop procedure getTotal;delete from cursor_table_user ;CREATE PROCEDURE getTotal()BEGIN DECLARE total INT; DECLARE sid INT; DECLARE sname VARCHAR(10); DECLARE sage INT; DECLARE done INT DEFAULT false; DECLARE cur CURSOR FOR SELECT id,name,age from cursor_table where age>30; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true; SET total = 0; OPEN cur; FETCH cur INTO sid, sname, sage; WHILE(NOT done) DO insert cursor_table_user values(sname); SET total = total + 1; FETCH cur INTO sid, sname, sage; END WHILE; CLOSE cur; SELECT total; END
call getTotal();mysql> select * from cursor_table_user;+--------+| name |+--------+| 张三 || 李四 || 王五 |+--------+3 rows in set (0.00 sec)
这段程序有一行非常重要,DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true; ,他表示如果游标或SELECT语句没有数据的时候,将done变量的值设置 为 true,用来退出循环。
感谢你能够认真阅读完这篇文章,希望小编分享的"MySQL中怎么使用游标"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
游标
存储
过程
数据
语句
一行
篇文章
光标
数据库
结果
循环
变量
张三
李四
王五
处理
重要
从头到尾
之间
人名
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司怎么样
上海睿民互联网科技有限公司
广州淘业互联网络科技
互联网科技会
互联网 科技
互联网科技金融公司
安徽鑫晟辉互联网科技
润盈互联网科技
长亮科技 互联网金融
互联网科技宣传片
广西拼得多互联网科技有限公司
湖南洣水互联网科技有限公司扣款
西藏七维空间互联网科技有限公司
温州喔噻互联网科技有限公司
茂名市互联网科技产业园
湖北码尼互联网科技有限公司电话
阿里互联网科技企业
重庆科技产业互联网有哪些
伍佰万互联网科技是干嘛的
山东亿川互联网科技有限责任公司
互联网科技公司经营范围
涨乐互联网科技
互联网品科技
互联网科技革命
济南华为互联网科技产业总部基地
福州新华互联网科技学校 知乎
阿里互联网科技公司
互联网科技公司有风险吗
互联网科技产业特征
工业互联网山东科技大学