MySQL游标的用法(附带实例)
MySQL 中,查询语句可能返回多条记录,如果数据量非常大,则需要在存储过程和存储函数中使用游标(光标)来逐条读取查询结果集中的记录。应用程序可以根据需要滚动或浏览其中的数据。本节将介绍如何声明、打开、使用和关闭游标。
游标必须在声明处理程序之前被声明,并且变量和条件还必须在声明游标或处理程序之前被声明。
【实例 1】声明名称为“cursor_fruit”的游标,SQL 语句如下:
【实例 2】打开名称为“cursor_fruit”的游标,SQL语句如下:
【实例 3】使用名称为“cursor_fruit”的游标将查询出来的数据存入 fruit_name 和 fruit_price 这两个变量中,SQL 语句如下:
如果游标未被明确地关闭,则它在被声明的复合语句的末尾关闭。
【实例 4】关闭名称为“cursor_fruit”的游标,SQL 语句如下:
游标必须在声明处理程序之前被声明,并且变量和条件还必须在声明游标或处理程序之前被声明。
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 中,游标只能在存储过程和存储函数中使用。