MySQL中怎么使用游标
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍了MySQL中怎么使用游标,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。要明白什么是游标,首先要了解存储过程,存储过程
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
学校网络安全隐患自查及整改情况
英雄联盟手游主播玩的什么服务器
计算机网络技术实习部门
湖北叮咚网络技术有限公司
赤峰软件开发培训学校
大数据和网络技术关系
tbc不排队人多的服务器
数据库专利技术
福州水果蔬菜配送软件开发
sql数据库与非结构化
掌印数据库
计算机编程和网络技术
git服务器版本管理
蜀山区网络技术开发费用
我国维护网络安全有哪些挑战
黄陂计算机软件开发设施
江山美域数据库
数据库有哪些库
相对贫困数据库
人体ACE2合成数据库
打印机显示服务器出错
网络安全法情况报告
方舟生存进化拆日本服务器
杭州ktv服务器回收
配置和管理许可服务器
昆明新闻网络安全
去年网络安全大赛的冠军
兴化购买网络技术诚信服务
ecs服务器建网站超详细教程
怎么更改软件开发者