一文详解 “游标“

什么是游标?


         是一种处理数据的方法,是一种数据访问机制。在数据库中,游标提供了一种从表中检索出的数据进行操作的灵活手段,能从包含数据记录的结果集总每次提取一条记录的机制。

         游标总是与一条SQL选择语句相关联,因为游标是由结果集(可以是0条,1条或相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成的。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。

有数据缓冲的思想:游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。

游标优缺点:


       因为游标是针对行操作的,所以对从数据库中select查询得到的每一行可以进行分开的独立的相同或不同的操作,是一种分离的思想。可以满足对某个结果行进行特殊的操作。 游标与基于游标位置的增删改查能力。,我觉得游标是在关系数据库这种面向集合的系统中抽离出来,单独针对行进行表达(也可以理解成网上资料说的:游标是面向集合与面向行的设计思想之间的一种桥梁)。缺点就是由于是一行行的所以速度比较慢,有时候会造成死锁。

游标操作:五步走

声明---打开--读取--关闭--删除


声明游标:

DECLARE <游标名> CURSOR FOR select语句;

​

打开游标:

	
open <游标名>

读取游标:

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}

判断游标提取状态:

发布了55 篇原创文章 · 获赞 38 · 访问量 3592

猜你喜欢

转载自blog.csdn.net/weixin_42678716/article/details/103324081