温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Cursor游标如何遍历

发布时间:2026-08-31 18:25:47 来源:亿速云 阅读:92 作者:小樊 栏目:数据库

你提到的 “Cursor游标如何遍历”,通常指数据库查询返回的游标(Cursor) 的遍历方式。不同语言 / 数据库 API 写法不同,下面按常见场景说明。


一、通用概念

游标(Cursor)本质是结果集的指针,遍历就是:

  1. 打开游标
  2. 逐行读取
  3. 处理数据
  4. 关闭游标

二、常见语言示例

1️⃣ Python(以 sqlite3 / pymysql 为例)

cursor.execute("SELECT id, name FROM user")

# 方式一:for 循环(最常用)
for row in cursor:
    print(row["id"], row["name"])

# 方式二:fetchone
while True:
    row = cursor.fetchone()
    if not row:
        break
    print(row)

# 方式三:fetchall(小数据量)
rows = cursor.fetchall()
for row in rows:
    print(row)

2️⃣ Java(JDBC)

ResultSet rs = stmt.executeQuery("SELECT id, name FROM user");

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println(id + " " + name);
}

rs.close();

3️⃣ MySQL 存储过程游标

DECLARE done INT DEFAULT FALSE;
DECLARE uid INT;
DECLARE cur CURSOR FOR SELECT id FROM user;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN cur;
read_loop: LOOP
    FETCH cur INTO uid;
    IF done THEN
        LEAVE read_loop;
    END IF;
    -- 处理 uid
END LOOP;
CLOSE cur;

4️⃣ MongoDB Cursor(Python)

cursor = db.users.find({})

for doc in cursor:
    print(doc["name"])

三、遍历注意事项

  • ✅ 大数据量用 fetchone / next,避免 fetchall 占内存
  • ✅ 用完必须关闭游标
  • ✅ 事务中游标未关闭可能导致锁表
  • ✅ 游标只能单向遍历(多数数据库)

四、如果你指的是别的“Cursor”

请告诉我具体场景,例如:

  • 数据库类型(MySQL / Oracle / PG)
  • 编程语言
  • 是否是 分页游标 / 滚动游标 / 存储过程游标

我可以直接给你对应写法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI