mysql存储过程中光标的使用

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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

文章目录


光标的基本概念

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

声明光标

语法格式如下declare cursor_name cursor for select_statement

cursor_name光标名select_statementselect语句的内容返回一个用于创建光标的结果集。

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 语句的所有记录的集合。

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

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

程序实例

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中光标相关的知识与内容并且编写了一个对应光标使用的实例

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysql