在数据库中,游标提供了一种从表中检索出的数据进行操作的灵活手段,本质上,游标实际上就是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
我们用select语句查询的时候思维方式是面向集合的,而游标的思维方式是面向行的,这在性能上,导致游标会消耗更多的内存,减少可用的并发,占用宽带,锁定资源等弊端。
(以下观点来自http://www.cnblogs.com/moss_tan_jun/archive/2011/11/26/2263988.html)
既然游标这么“邪恶”,为什么还要学习游标
我个人认为存在既是合理.归结来说,学习游标原因我归纳为以下2点
1.现存系统有一些游标,我们查询必须通过游标来实现
2.作为一个备用方式,当我们穷尽了while循环,子查询,临时表,表变量,自建函数或其他方式扔来无法实现某些查询的时候,使用游标实现.
游标允许应用程序对查询语句select返回的行结果集中每一行进行相同或不同的操作,而不是对整个结果集进行同一操作;还提供对基于游标位置而对表中数据进行删除或更新的能力。