前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySql 游标的使用

MySql 游标的使用

作者头像
MaybeHC
发布2024-04-23 19:27:47
890
发布2024-04-23 19:27:47
举报
文章被收录于专栏:技术之路技术之路

今天在极客时间学习了SQL必知必会专栏,游标的部分,在下面总结一下游标的使用。 使用游标的步骤如下:定义游标,用变量接收游标状态,打开游标,游标中取得数据,关闭游标,释放游标,下面就从这是步骤来使用游标。

定义游标

代码语言:javascript
复制
DECLARE cursor_name CURSOR FOR select_statement

cursor_name 为游标名称,select_statement代表SELECT语句

定义变量接收游标状态

在这里需要定义一个变量来接收游标当前是否已经指向最后。

代码语言:javascript
复制
DECLARE done INT DEFAULT false;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;

done为变量名称,先将done默认值定义为false。第二句的含义就是当游标指到末尾时将done设置为true。

打开游标

代码语言:javascript
复制
OPEN cursor_name

游标中取得数据

代码语言:javascript
复制
FETCH cursor_name INTO var_name ...

可以理解为将游标指向下一行。

关闭数据

代码语言:javascript
复制
CLOSE cursor_name

释放游标

代码语言:javascript
复制
DEALLOCATE cursor_namec 

例子

这里引用极客时间的一段代码,作为一个简单的范例:

代码语言:javascript
复制
CREATE PROCEDURE `calc_hp_max`()
BEGIN
       -- 创建接收游标的变量
       DECLARE hp INT;  
       -- 创建总数变量 
       DECLARE hp_sum INT DEFAULT 0;
       -- 创建结束标志变量  
       DECLARE done INT DEFAULT false;
       -- 定义游标     
       DECLARE cur_hero CURSOR FOR SELECT hp_max FROM heros;
       
       OPEN cur_hero;
       read_loop:LOOP 
       FETCH cur_hero INTO hp;
       SET hp_sum = hp_sum + hp;
       END LOOP;
       CLOSE cur_hero;
       SELECT hp_sum;
END

再次回顾学习一次SQL,游标自我理解就想像鼠标的光标一样可以对每个数据进行扫描,可以到达每个数据的位置。总结游标的使用步骤定义游标,用变量接收游标是否结束,打开游标,游标中取得数据,关闭游标,释放游标。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义游标
  • 定义变量接收游标状态
  • 打开游标
  • 游标中取得数据
  • 关闭数据
  • 释放游标
  • 例子
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档