首页 > 编程笔记 > MySQL笔记 阅读:7

MySQL游标的用法(附带实例)

MySQL 中,查询语句可能返回多条记录,如果数据量非常大,则需要在存储过程和存储函数中使用游标(光标)来逐条读取查询结果集中的记录。应用程序可以根据需要滚动或浏览其中的数据。本节将介绍如何声明、打开、使用和关闭游标。

游标必须在声明处理程序之前被声明,并且变量和条件还必须在声明游标或处理程序之前被声明。

MySQL游标的声明

在 MySQL 中,使用 DECLARE 关键字来声明游标,其语法的基本形式如下:
DECLARE cursor_name CURSOR FOR select_statement
其中,cursor_name 参数表示游标的名称;select_statement 参数表示 SELECT 语句的内容,返回一个用于创建游标的结果集。

【实例 1】声明名称为“cursor_fruit”的游标,SQL 语句如下:
DECLARE cursor_fruit CURSOR FOR SELECT f_name, f_price FROM fruits ;
在本例中,游标的名称为“cur_fruit”,SELECT 语句部分从表 fruits 中查询出 f_name 和 f_price 字段的值。

MySQL打开游标

打开游标的语法如下:
OPEN cursor_name{游标名称}

【实例 2】打开名称为“cursor_fruit”的游标,SQL语句如下:
OPEN  cursor_fruit ;

MySQL游标的使用

使用游标的语法如下:
FETCH cursor_name INTO var_name [, var_name] ...{参数名称}
其中,cursor_name 参数表示游标的名称;var_name 参数表示将游标中的 SELECT 语句查询出来的信息存入该参数中,var_name 必须在声明游标之前就已经定义好。

【实例 3】使用名称为“cursor_fruit”的游标将查询出来的数据存入 fruit_name 和 fruit_price 这两个变量中,SQL 语句如下:
FETCH  cursor_fruit INTO fruit_name, fruit_price ;
在本例中,将游标 cursor_fruit 中用 SELECT 语句查询出来的信息存入 fruit_name 和 fruit_price 中,并且 fruit_name 和 fruit_price 必须在前面已经定义好。

MySQL关闭游标

关闭游标的语法如下:
CLOSE cursor_name{游标名称}
这个语句关闭先前打开的游标。

如果游标未被明确地关闭,则它在被声明的复合语句的末尾关闭。

【实例 4】关闭名称为“cursor_fruit”的游标,SQL 语句如下:
CLOSE  cursor_fruit;
在 MySQL 中,游标只能在存储过程和存储函数中使用。

相关文章