数据库中的书签——游标
来源:未知 责任编辑:责任编辑 发表时间:2014-03-23 22:32 点击:次
数据库中的书签——游标
游标的引入
为解决在多条结果集的情况下,要逐一读取每一条记录所带来的麻烦。游标为我们提供了一种较好的解决方案。 www.2cto.com
游标的组成
每一个游标必须有四个组成部分。且必须符合下面的顺序。
1, declare游标(用来声明游标)
2, open游标
3, 从一个游标中fetch信息
4, Close或deallocate游标
游标的声明
声明游标主要包含以下内容:游标名字,数据来源表和列,选取条件,属性仅读或可修改
其语法格式如下:
Declare 游标名称 cursor
[local|glocal] 指定游标的作用域是局部的还是全局的
[forward_only|scroll] 选择forward_only则游标只能从第一行滚动到最后一行。Scroll表明所有的提取操作都可用,如果不使用该保留字则只能进行next操作。
[read_only] 表明不允许游标内的数据被更新
For 选择语句 是定义结果集的select语句,应该注意的是在游标中不能使用compute等语句。
[for[update[of 字段名称1,字段名称2…]]] 定义在游标中可被修改的列
打开游标
游标声明以后,如果要从游标中读取数据,必须打开游标,使用open命令,语法格式如下:
Open 游标名称 www.2cto.com
读取游标中的数据——fetch
Fetch
[[next|prior|first|last|absolute{n|@nvar}|relative{n|@nvar}]from]cursor_name
[into @variable_name1,@variable_name2…]
Next:返回结果集中当前行的下一行,并增加当前行数为返回行行数,如果fetchnext是第一次读取游标中数据则返回结果集中的是第一行而不是第二行
Prior:返回结果集中当前行的前一行并减少当前行数为返回行行数。如果fetchprior是第一次读取游标中数据则无数据记录返回并把游标位置设为第一行。
First:返回游标中第一行
Last:返回游标中的最后一行
Absolute{n|@nvar}:如果n或者@nvar为正数,则表示从游标中返回的数据行数。如果n货@nvar为负数,则返回游标内从最后一行数据算起的第n或@nvar行数据。
若n或@nvar超过游标的数据子集范畴,则@@fetch_stars返回-1。在该情况下,如果n或@nvar为负数,则执行fetchnext命令会得到第一行数据,如果为正值,执行fetch prior命令则会得到最后一行数据。n或@nvar可以是一固定值,也可以是一smallint,tinyint或int类型的变量。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>