游标是一个存储在MYSQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。
游标主要应用于交互式应用。
1.声明游标
游标在使用之前必须先声明,可用DECLARE CURSOR语句声明游标,其一般格式为:
DECLAR<游标名>[INSENSITIVE][SCROLL]CURSOR
FOR<SELECT-查询块>
[FOR{READ ONLY|UPDATE[OF<列名>[,<列名>...]]}]
说明:INSENSITIVE——使用数据的临时复制来定义游标,这时的游标实际上是不允许修改的。
SCROLL——可以使用任何方法来存取数据,允许更新和删除。
FOR<SELECT-查询块>——使用SELECT查询块来定义一个游标。
FOR READ ONLY或FOR UPDATE——说明是只读的游标还是可修改的游标。
2.打开游标
使用OPEN语句的功能打开游标,实际上就是执行相应的SELECT查询语句,将查询结果放到缓冲区。这时游标处于活动状态,游标指针指向第一条记录。其一般格式为:
OPEN<游标名>
3.提取游标
FETCH语句是从游标中提取特定的一行。其一般格式为:
FETCH
[[NEXT|PRIOR|FIRST|LAST|ABSOLUTE n|RELATIVE n]FROM]
<游标名>
[INTO:<主变量1>,<主变量2>...]
说明:NEXT——如果是在OPEN后第一次执行FETCH命令,则返回结果集的第一行,否则使游标的指针指向结果集的下一行,NEXT是默认的选项。
PRIOR——返回结果集当前行的前一行。
FIRST——返回结果集的第一行。
LAST——返回结果集的最后一行。
ABSOLUTE n——如果n是正数,返回结果集的第n行,如果n是负数,则返回结果集的倒数第n行。
RELATIVE n——如果n是正数,返回当前行后的第n行,如果n是负数,则返回当前行开始倒数的第n行。
INTO——该语句的功能是把游标取出的当前记录送入到主变量,INTO后的主变量要与在DECLARE CURSOR中SELECT的字段相对应。
4.关闭游标
使用CLOSE 语句关闭游标,其一般格式为:
CLOSE<游标名>
5.释放游标
使用DEALLOCATE语句释放游标,其一般格式为:
DEALLOCATE<游标名>
选择题:
1.在存储过程体中,使用游标的具体步骤包括声明游标、打开游标、读取游标、关闭游标。
声明-->打开-->读取-->关闭
2.在MySQL中,存储过程、存储函数、触发器、应用程序均可以声明和使用游标。交互式SQL查询是数据库使用方式。
3.在MySQL中,声明游标的语法格式为:DECLARE cursor_name CURSOR FOR select_statement;
4.对于填有数据的游标,使用 FETCH…INTO…子句读取数据。
在使用游标时,实际完成数据读取任务的语句是(FETCH...INTO...)。
5.游标不是一条SELECT语句,是被SELECT语句检索出来的结果集,相当于一个指针,它指向当前的一行数据;对于游标,使用DECLARE CURSOR声明,使用FETCH…INTO…语句获取所需数据,游标相当于一个指针,它指向当前的一行数据,使用结束后需及时关闭。
6.删除存储函数的基本语法格式为:DROP FUNCTION 存储函数名;
游标是被SELECT语句检索出来的结果集。