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

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

关注:177  答案:2  mip版

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

e6cb1a03ad541b3098697807b7bf1798.png

提问者更无风月

2021-01-15 15:53

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

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

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

2021-01-15 16:47

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

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

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

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

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

我要举报

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

点此我要举报以上信息!

推荐资讯

大家都在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值