mysql存储过程----游标

定义:

游标是用来存储查询结果集的数据类型,在存储过程和存储函数中可以使用游标对结果集进行循环处理,游标的使用包括游标声明、open、fetch和close,语法如下:

语法:

声明光标:

DECLARE 游标名称 CURSOR FOR 封装select语句;

开启游标(open):

OPEN 游标名称;

获取游标中的数据(fetch)

FETCH 游标名称 INTO var_name

关闭游标(close):

close 游标名称;
示例:
BEGIN	
	-- 声明保存数据的变量
  DECLARE class_id int(10);
	DECLARE class_name VARCHAR(10);
  -- 声明一个名字为 cursor_result 游标
  -- 游标值为class_info表中数据
	DECLARE cursor_result CURSOR FOR select * from class_info;
  -- 打开游标
  OPEN cursor_result;

	-- 遍历值放入变量中
	FETCH cursor_result INTO class_id,class_name;
	-- 查看结果
	SELECT CONCAT('class_id=',class_id,'class_name=',class_name);
-- 遍历值放入变量中
	FETCH cursor_result INTO class_id,class_name;
	-- 查看结果
	SELECT CONCAT('class_id=',class_id,'class_name=',class_name);
  -- 关闭游标
	CLOSE cursor_result;
END

循环读取游标示例:

BEGIN	
	-- 声明保存数据的变量
    DECLARE c_id int(10);
	DECLARE c_name VARCHAR(10);
	-- 声明记录总记录数的变量
	DECLARE count_class_info INT(10) DEFAULT 1;
	-- 声明一个名字为 cursor_result 游标
  -- 游标值为class_info表中数据
	DECLARE cursor_result CURSOR FOR select * from class_info;
	-- 设置值,如果抓取不到数据给count_class_info设置为0
	DECLARE EXIT HANDLER FOR NOT FOUND SET count_class_info=0;
  -- 打开游标
  OPEN cursor_result;
	WHILE count_class_info<>0 DO

		-- 遍历值放入变量中
		FETCH cursor_result INTO c_id,c_name;
		-- 查看结果
		SELECT CONCAT('class_id=',c_id,'class_name=',c_name);
	END WHILE;

  -- 关闭游标
	CLOSE cursor_result;
  
END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半夜燃烧的香烟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值