3、游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。MYSQL游标只能用于存储过程(和函数)
3.1 什么是“游标(Cursor)”?
游标是SQL 的一种数据访问机制 ,游标是一种处理数据的方法。众所周知,使用SQL的select查询操作返回的结果是一个包含一行或者是多行的数据集,如果我们要对查询的结果再进行查询,比如(查看结果的第一行、下一行、最后一行、前十行等等操作)简单的通过select语句是无法完成的,因为这时候索要查询的结果不是数据表,而是已经查询出来的结果集。游标就是针对这种情况而出现的。
“ 游标 ”简单的看成是【结果集】的一个指针,可以根据需要在结果集上面来回滚动,浏览我需要的数据。
3.2 使用游标的步骤
在能够使用游标前,必须声明(定义)它。这个过程实际上没有检索数据,它只是定义要使用的SELECT语句。
一旦声明后,必须打开游标以供使用。这个过程用前面定义的SELECT语句把数据实际检索出来。
对于填有数据的游标,根据需要取出(检索)各行。
在结束游标使用时,必须关闭游标。
五步走:声明游标----->打开游标------>读取数据----->关闭数据------>删除游标
3.3 声明游标 :语句用来定义和命名游标。在定义游标之后,可以打开它。
DECLARE 游标名 CURSOR [LOCAL | GLOBAL]
[ FORWARD_ONLY | SCROLL ]
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
[ TYPE_WARNING ]
FOR SELECT 查询语句
[ FOR UPDATE [ OF column_name [ ,...n ] ] ]
3.4 打开和关闭游标
OPEN CURSOR: 打开游标,
CLOSE 游标名:close释放游标使用的所有内部内存和资源,因此在每个游标不再需要时都应该关闭
3.5 使用游标数据
FETCH [NEXT | PRIOR | FIRST | LAST | ABSOLUTE | RELATIVE ] FROM 游标名 :在一个游标被打开后,可以使用FETCH语句分别访问它的每一行,FETCH指定检索什么数据(所需的列),检索出来的数据存储在什么地方。它还向前移动游标中的内部行指针,使下一条FETCH语句检索下一行(不重复读取同一行)。
3.6 删除游标
DEALLOCATE 游标名