怎么一行一行的遍历数据库中的所有行

如题所述

使用【游标】可以辅助实现一行一行地遍历某个数据库表中的所有行。
例如在Oracle数据库中:
declare
sname varchar2( 20); --声明变量
cursor student_cursor is select sname from student ; --声明指向表student的【游标】
begin
open student_cursor;--打开游标
fetch student_cursor into sname ;--获取游标的当前指向值,使游标指针往下移动
while student_cursor%found --判断游标指针是否指向某行记录,即是否已遍历完全表
loop--循环遍历
dbms_output.put_line ('学生姓名' ||sname );--输出当前遍历访问的行记录信息
fetch student_cursor into sname;--获取游标的当前指向值,使游标指针往下移动
end loop;--循环体结束
close student_cursor;--关闭游标,对应前面open操作
end;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-09
如果查询的语句用不上索引的话,数据库是按照你说的来执行的,所以没有索引的查询是很费时间的。如果查询的语句用到了索引,数据库会加载索引,查询速度就会得到飞速的提高。 打个比方,如果你想用中文字典查询一个汉字,没有用索引的查找方法就是从字典第一页一页一页的翻查,如果有了索引,就好比你知道那个汉字的拼音,使用字典的拼音查找,直接定位页面。 索引在数据库引擎中是一个非常重要的概念。