circlurity1
2008-07-31 23:32
浏览 162
已采纳

[请教高手]sql游标问题

size=large SQL的游标是不是将从数据库查到的数据放在内存中?
(2) 通过游标进行增加、删除、修改等操作后,这些数据能不能真实影响到数据库?我的意思是,这些操作是否对数据库进行增、删、改?
(3) 如果游标操作[b][i]不能[/i][/b]真实影响到数据库,那么在内存中进行这些操作又有什么意义呢?
[/size]
[b]问题补充:[/b]
补充:
A) SQL的游标是不是对select操作得到的ResultSet进行操作?
B) 得到的ResultSet是在数据库中(也就是在硬盘中)还是在内存中?
[b]问题补充:[/b]
当然, 通过游标进行的增、删、改、查当然能够影响到真实的数据库。这一点你可以联系到视图,唯一的区别是, 视图是表级,而游标是行级

游标是个结果集,是从数据表中提取出来的数据,以临时表的形式存放在内存中

上面是从两位朋友的答复中抽取出来的部分文字。

我也认为通过游标进行的增删改查能真实的影响数据库,要不就这样的操作就真的没有什么意义了。上面的两个答复中提到“视图”、“临时表的形式存放”,我发这个帖发问的最大疑问就是:通过操作这些存放在内存中的临时表数据(“视图”我觉得本质上也是一张临时表),是如何真正去影响数据库(硬盘上的数据)的?如果我没有记错的话,对视图这样的临时表进行操作是不能影响到真实基表的。那么我们通过游标对临时表进行操作,是何时将这些增删改的数据操作同步到数据库的?也就是说是何时将[内存]中的临时表数据关联到[硬盘]上的数据库而实际影响数据库的?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • wxjiaaa 2008-08-01 08:47
    已采纳

    游标是一个对象,能够提供行级的SQL语句控制。可以表示任意合法的SQL SELECT语句。用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等。

    个人认为, 这东西你可以理解为指针或者引用……

    当然, 通过游标进行的增、删、改、查当然能够影响到真实的数据库。这一点你可以联系到视图,唯一的区别是, 视图是表级,而游标是行级

    至于第三,……

    当然,以上纯属个人理解, 如有不当, 还请高人继续指教

    评论
    解决 无用
    打赏 举报
  • 查看更多回答(5条)

相关推荐 更多相似问题