数据库中的游标到底是什么意思

关注:177  答案:2  mip版

解决时间 2021-01-15 20:54

提问者更无风月

2021-01-15 15:53

数据库中的游标到底是什么意思

最佳答案

二级知识专家癡情菂尐豬豬

2021-01-15 16:47

游标用于按顺序遍历结果集。但一般情况下,应尽量避免使用游标。原因:1. 游标违背了关系模型,即按集合来考虑问题的思想;2. 游标逐行对纪录进行操作,会带来额外的开销,使用游标的解决方案通常比使用集合的解决方案要慢得多;3. 使用游标的解决方案,需要用很多代码来描述对游标的操作,因此代码更长,可读性更差,也更难以维护。

只有在少数情况下才应当使用游标。举两个例子:1. 需要遍历表名,进行DDL操作;2. 连续聚合,此时基于游标的解决方案可能比基于集合的解决方案更快。

全部回答

1楼凊搽蒗囝

2021-01-15 18:27

你是指asp里面的数据库连接组件里面所属记录集的游标吧?

如conn,1,1后面的参数什么的.

简单说来:

conn,1,1为只读数据;1,3为插入数据;2,3是修改数据

游标的意思形象的说一个表格里有许多行数据,我用鼠标指向某一行数据(在asp里面叫记录集)你可以拖用鼠标指向下一行。在asp里面同样也可以。不过要通过它:rs.movenext,记录集往下移。

至于具体和理论知识如下:

游标类型

const adopenforwardonly = 0

前向游标,为缺省游标,提供最快的运行性能。用它打开recordset,从对至尾顺序取得所有结果。它不支持向后滚动,只允许在结果间单向移动。

const adopenkeyset = 1

静态游标,反映第一次打开游标时表中数据的状态,游标无法查明底层表中的数据行是否更新过、删除过或添加了新的数据。不过与只能前移的洲标不同,静态游标可以在结果间前后滚动。

const adopendynamic = 2

键盘驱动的游标,可以查询表中底层数据行的某些变化,但不是全部。它特别是可以准确反映数据是否更新过。但它不能查明其它用户是否曾删除过数据行(删除掉的数据行在recordset中会留下空洞)。键盘驱动的游标支持在结果间前后滚动。

const adopenstatic = 3

动态游标,是最丰富的游标类型。游标打开时可以查询其他用户对表的任何改动,而且支持滚动。

加锁类型

const adlockreadonly = 1

缺省的上锁类型,只读方式上锁允许多个用户同时读取同样的数据,但不能改变数据。

const adlockpessimistic = 2

以悲观上锁方式打开数据对象。该方式假定在你编辑记录时会有其它用户访问数据。此时一旦你开始编辑记录,其它用户就不能访问该数据。

const adlockoptimistic = 3

以乐观上锁方式打开数据对象。该方式假定在你编辑记录时不会有其它用户访问数据。在完成改变之前,其它用户不能访问该记录。

const adlockbatchoptimistic = 4

执行多行批处理更新时使用这种类型

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

点此我要举报以上信息!

推荐资讯

大家都在看

什么是mysql的游标_数据库中的游标到底是什么意思相关推荐

  1. mysql 邮箱长度_数据库中电子邮件地址的最佳长度是多less?

    数据库中电子邮件地址的最佳长度是多less? 这里是我查询的一部分,反映了EMAIL_ADDRESS列的数据types和属性: EMAIL_ADDRESS CHARACTER VARYING(20) ...

  2. mysql查询游标_数据库查询,游标。

    1把test1中,价格高于2000,产地是中国,杭州的产品信息,放到新建表test1_temp中,2并且要求test1中的category替换成test2中的categoryname,3最后商品价格高 ...

  3. mysql 存储视频_数据库中怎样存储视频?谢谢各位

    root@ytt:/var/lib/mysql-files# for i in `seq 1 100`; do cp 微信图片_20190711095019.jpg "$i".jp ...

  4. mysql关系运算_数据库中的关系运算

    1.和(Union)运算.针对行 针对两张具有相同属 性的表,将两者表合并起来,在合并过程中遇到重复的行保留一项就行了. 2.差(difference)运算.针对行 vc3Ryb25nPjwvcD4K ...

  5. mysql 数据缓冲区,MySQL写入缓冲区在数据库中的作用( Change Buffer )

    原标题:MySQL写入缓冲区在数据库中的作用( Change Buffer ) 介绍另外一种重要的数据变更日志,也就是InnoDB change buffer.Change buffer的主要目的是将 ...

  6. [导入]在SYBASE数据库中使用游标(Cursors)将多行查询结果进行逐行处理

    在SYBASE数据库中使用游标(Cursors)将多行查询结果进行逐行处理 2000-08-16 14:47:33 在SYBASE数据库中,说明性数据库语言(SQL)是目前首推的最成功,应用最广泛的数 ...

  7. mysql支持非关系_说下oracle、mysql、非关系型数据库中的索引结构?

    谢邀~~树懒君悉心整理了一篇索引结构方面的内容,跟各位知友分享分享~ Oracle 索引的数据结构:B-TreeOracle 数据库使用 B-trees 存储索引,来加速数据访问.若没有索引,你必须顺 ...

  8. mysql数据结构丢失_数据库谈一谈MySQL中的事务

    我们都知道,计算机处理的速度非常地快,但是再快的计算机,也面临着这样的问题,同一个时间里面有着非常多的请求都要对统一资源发生操作.所以,在数据库中,引入事务来解决这样的问题. 我们举个简单的例子,我在 ...

  9. mysql 表组是什么_数据库中属性组究竟是什么含义?

    展开全部 属性组的含义就是一组具有相互联系的属性组合而62616964757a686964616fe58685e5aeb931333433626564成的. 属性是比如一张表格中的学号和姓名等.一个事 ...

最新文章

  1. matplotlib交互模式
  2. spring 监听器 IntrospectorCleanupListener简介
  3. CentOS7 安装 Mysql 服务
  4. windows查看及配置路由
  5. 秒懂 this(带你撸平this)
  6. Java集合里的一些“坑”
  7. 非常好的Demo网站
  8. 计算机类教材的选题策划,电子计算机类科技期刊的选题策划.doc
  9. Android Ptrace Inject
  10. 如何在html中加入注释,HTML如何加脚注(注释)?
  11. 跳马问题:马走日,请问马从0,0位置出发,走到x,y目标点,还必须走k步,有多少种走法
  12. 车载系统大战:左边是BAT,右边是华为小米们
  13. Linux中的setenv与export
  14. 程序员进阶攻略笔记01-10
  15. 利用Civil3d导入桥梁中线至Revit中建立桥梁上部结构
  16. 代码审查(Code Review)
  17. 常用开源监控软件介绍
  18. Excel行列转置(行数据与列数据的转换)
  19. “该命令不是内部或外部命令”的 解决方法
  20. flickr api

热门文章

  1. web-packwebpack .\src\main.js .\dist\bundle.js 报错
  2. 2022年预训练的下一步是什么?
  3. 对比学习可以使用梯度累积吗?
  4. 论NLP可解释的评估:什么才是“好”的解释?
  5. MySQL学习第四章课后题
  6. 4.MyBatis全局配置文件SqlMapConfig.xml
  7. mysql InnoDB 聚集索引,二级索引
  8. mybatis使用if判断参数是否为空
  9. Go——Artifactory的AQL查询以及json解析解决方案
  10. C#——《C#语言程序设计》实验报告——综合练习——委托、Lambda表达式、LINQ、接口