游标:游标是一个被SELECT语句检索出来的语句集。存储游标以后,应用程序和用户根据需要股滚动或浏览数据
游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。
个人理解:
游标:根据用户的需要筛选出一些数据存入的一个临时存储空间。在这个存储空间里,根据空间的类型我们有访问和操作数据的功能。也可以说游标就是根据一个sql语句取出的多条记录的结果集,我们之所以把这些结果放在一起,是因为我们需要对这些结果集进行逐一的操作。
操作过程:
游标的声明:
语法格式:
Declare cursor_name[insensitive][scroll](制定游标位置定义的类型)cursor
For select_statement
[FOR{read only|update[of column_name[,…n]]}](设置游标的一些属性,比如只读可修改)
释放游标:DEALLOCATE CURSOR_NAME
操作游标:
打开游标:
OPEN{{[GLOBAL]cursor_name}|cursor_variiable_name}
检索游标:
FETCH
[[NEXT |PRIOR(上一行) |FIRST |LAST |ABSOLUTE(制定结果集的第几行){n|@nvar}|RELATIVE{N |@nvar}]
from]
{{[GLOBAL]cursor_name}| @cursor_variable_name}
[into@variable_name[,…n]]
关闭游标:
CLOSE{{[GLOBAL]curcor_name} |cursor_variable_name}
释放游标:
DEALLOCATE{{[GLOBAL]cursor_name}]| @cursor_variable_name}
判断游标提取状态:
@@FETCH_STATUS 获取提取状态 ,int
0FETCH语句成功
-1FETCH语句失败或行不在结果集中
-2提取的行不存在