概念

游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。 
使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。
用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。
游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。

优点

  • 允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作
  • 提供对基于游标位置的表中的行进行删除和更新的能力
  • 游标实际上作为面向集合的数据库管理系统(RDBMS)和面向行的程序设计之间的桥梁,使这两种处理方式通过游标沟通起来

使用游标

使用游标的顺序: 声名游标、打开游标、读取数据、关闭游标、删除游标。

声明游标
#声明游标
DECLARE cursor_name CURSOR FOR select_statement

这个语句声明一个游标。也可以在子程序中定义多个游标,但是一个块中的每一个游标必须有唯一的名字。声明游标后也是单条操作的,但是不能用SELECT语句不能有INTO子句

打开游标

这个语句打开先前声明的游标

OPEN cursor_name;
读取数据

这个语句用指定的打开游标读取下一行(如果有下一行的话),并且前进游标指针。

FETCH cursor_name INTO var_name [, var_name] ...
关闭游标

这个语句关闭先前打开的游标

CLOSE cursor_name

特性

  • 只读的,不能更新的
  • 不滚动的
  • 不敏感的,不敏感意为服务器可以活不可以复制它的结果表

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

MySQL 不用游标 mysql使用游标的原因_SQL