mysql存储过程中光标的使用

本文来说下mysql存储过程中光标的使用


光标的基本概念

查询语句可能返回多条记录,如果数据集非常大,需要在存储过程中使用光标来逐条读取查询结果集中的记录。光标必须在声明处理程序之前被声明,并且变量和条件在光标之前。

声明光标

语法格式如下:declare cursor_name cursor for select_statement

cursor_name:光标名;select_statement:select语句的内容,返回一个用于创建光标的结果集。

declare cursor_fruit cursor for select fname,fprice from fruits;

打开光标

语法格式如下:open cursor_name(光标名称)

open cursor_fruit;

使用光标

语法格式如下:fetch cursor_name into var_name [,var_name]…{参数名称}

var_name:参数表示光标中的select语句查询出来的信息存入该参数中,必须在声明光标之前定义好。

fetch cursor_fruit into fruit_name,fruit_price;

关闭光标

/*close cursor_name */
close cursor_fruit;

光标使用实例

在 MySQL 中,存储过程或函数中的查询有时会返回多条记录,而使用简单的 SELECT 语句,没有办法得到第一行、下一行或前十行的数据,这时可以使用游标来逐条读取查询结果集中的记录。游标在部分资料中也被称为光标。

关系数据库管理系统实质是面向集合的,在 MySQL 中并没有一种描述表中单一记录的表达形式,除非使用 WHERE 子句来限制只有一条记录被选中。所以有时我们必须借助于游标来进行单条记录的数据处理

一般通过游标定位到结果集的某一行进行数据修改。

结果集是符合 SQL 语句的所有记录的集合。

个人理解游标就是一个标识,用来标识数据取到了什么地方,如果你了解编程语言,可以把他理解成数组中的下标。

不像多数 DBMS,MySQL 游标只能用于存储过程和函数。

程序实例

CREATE DEFINER=`tmis`@`%` PROCEDURE `get_employee_info`()
begin
   
	 declare employeeCode varchar(30) default "";
	 declare employeeName varchar(30) default "";
 
     -- 声明光标
	 declare cursor_employee cursor for 
	 select employee_code,employee_name from employee_info;
	 
	 -- 打开光标
	 open cursor_employee;
	 
	 -- 使用循环遍历得到用户的编码和名称信息
	 while(employeeCode is not null)
	 do
	     -- 使用光标
	     fetch cursor_employee into employeeCode,employeeName;
	     select employeeCode;
		 select employeeName;
	 end while;
	 
	 -- 关闭光标
	 close cursor_employee;
end

本文小结

本文详细介绍了mysql中光标相关的知识与内容,并且编写了一个对应光标使用的实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值