中文名
游标
外文名
Cursor
步骤1
游标定义
步骤2
打开游标
步骤3
提取游标
快速
导航
定义概念种类使用游标
基本信息
把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。
定义概念
主语言是面向记录的,一组主变量一次只能存放一条记录,仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求。即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案。
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标可以被看作是一个查询结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成的一个临时文件,提供了在查询结果集中向前或向后浏览数据、处理结果集中数据的能力。有了游标,用户就可以访问结果集中任意一行数据,在将游标放置到某行之后,可以在该行或从该位置的行块上执行 *** 作。
当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。
关系数据库管理系统实质是面向集合的,在MS SQL SERVER 中并没有一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中。因此我们必须借助于游标来进行面向单条记录的数据处理。
两者是完全不同的东西游标是基于查询结果集的
比方说你的一个select语句查询出了若干条记录这样一个结果集,如果你想对结果集中的每一行都进行一个判断或则其他 *** 作,那么用sql语句的update或者就不能满足针对每一行的特定 *** 作,这个时候游标就发挥作用了:
你可以把这个结果集定义成一个游标,通过游标的 *** 作形式,你可以遍历结果集中的每一行记录并可以对它进行 *** 作,也就是你可以通过游标对一个select查询出的结果执行for循环来遍历 *** 作数据。
而序列则是oracle中的一种对象,就像表、视图一样,你可以像建表一样:create table……
来建序列:create sequence……
只是它的结构和作用与表不同,它是一个规则的自动增加的数字序列,一般用来作为代理主键,或者作为序号生成器。
Oracle中显示游标,隐式游标,循环游标,动态游标的区别和应用显式游标使用的是SELECT叙述,被声明于任何一个区块的声明段落中,开发者可以控制几乎所有与游标有关的 *** 作。
显示游标对游标的处理提供了其他类似的游标无法做到的控制。他们要使用一次会传回多余一笔记录的SELECT叙述。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)