`

MySQL使用游标cursor

阅读更多
1. 使用游标
创建游标
create procedure processorders()
begin
    declare ordernumbers cursor for select order_num from orders;
end;

打开游标
open ordernumbers;

关闭游标
close ordernumbers;

创建带声明的游标
create procedure processorders()
begin
    -- declare the cursor
    declare ordernumbers cursor for select order_num from orders;
    -- open the cursor
    open ordernumbers;
    -- close the cursor
    close ordernumbers;
end;

使用游标数据
create procedure processorders()
begin
    -- declare local variable
    declare o int;
    -- declare the cursor
    declare ordernumbers cursor for select order_num from orders;
    -- open the cursor
    open ordernumbers;
    -- get order number
    fetch ordernumbers into o;
    -- close the cursor
    close ordernumbers;
end;

使用游标检索循环数据
create procedure processorders()
begin
    -- declare local variable
    declare done boolean default 0;
    declare o int;
    -- declare the cursor
    declare ordernumbers cursor for select order_num from orders;
    -- declare continue handler
    declare continue handler for sqlstate '02000' set done = 1;
    -- open the cursor
    open ordernumbers;
    -- loop through all rows
    repeat
        -- get order number
        fetch ordernumbers into o;
        -- end of loop
        until done end repeat;
    -- close the cursor
    close ordernumbers;
end;

使用游标检索循环数据保存到表中
create procedure processorders()
begin
    -- declare local variable
    declare done boolean default 0;
    declare o int;
    declare t decimal(8, 2);
    -- declare the cursor
    declare ordernumbers cursor for select order_num from orders;
	-- declare continue handler
	declare continue handler for sqlstate '02000' set done = 1;
	-- create a table to store the result
	create table if not exists ordertotals(order_num int, total decimal(8, 2));
	-- open the cursor
	open ordernumbers;
	-- loop through all rows
	repeat
	    -- get order number
	    fetch ordernumbers into o;
	    -- get the total for this order
	    call ordertotal(o, 1, t);
	    -- insert order and total into ordertotals
	    insert into ordertotals(order_num, total) values(o, t);
	-- end of loop
	until done end repeat;
	-- close the cursor
	close ordernumbers;
end;
select * from ordertotals;

1. 游标(cursor):是一个存储在MySQL服务器上的数据库查询,它不是一条select语句,而是被该语句检索出来的结果集。
   游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。
   游标只能用于存储过程和函数。
2. 使用游标的步骤:
   1) 在能够使用游标前,必须声明(定义)它。这个过程实际上没有检索数据,它只是定义要使用的select语句。
   2) 一旦声明后,必须打开游标以供使用。这个过程用前面定义的select语句把数据实际检索出来。
   3) 对于填有数据的游标,根据需要去除(检索)各行。
   4) 在结束游标使用时,必须关闭游标。
3. 在一个游标被打开后,可以使用fetch语句分别访问它的每一行。fetch指定检索什么数据(所需的列),检索出来的数据存储在什么地方。它还向前移动游标中的内部指针,使下一条fetch语句检索下一行(不重复读取同一行)。
分享到:
评论

相关推荐

    MySql游标的使用实例

    MySQL游标是数据库管理系统中的一个重要概念,主要用于在存储过程或函数中逐行处理查询结果集。游标允许程序按需一次处理一行数据,而非一次性获取所有数据,这在处理大量数据时尤其有用,因为它可以避免一次性加载...

    mysql游标详解

    在 MySQL 中,游标的使用和 PL/SQL 有点不同,但基本思想是一样的。游标可以用来实现复杂的数据处理逻辑,例如循环、判断、异常处理等。 在使用游标时,需要注意错误处理。在 MySQL 中,可以使用 CONTINUE HANDLER ...

    mysql游标

    MySQL游标是数据库管理系统中一个重要的概念,它在处理大量数据时非常有用,尤其是在需要逐行处理查询结果的情况下。游标允许程序动态地访问和操作数据集,而不是一次性加载所有结果。在MySQL中,游标主要用于存储...

    mysql游标实现到了最后一个结束之后结束循环

    而“源码”标签可能暗示了博文中会包含一些示例代码来展示如何在应用程序中(可能是使用Java、Python或其他语言)操作MySQL游标。 由于缺少具体博文内容,以上内容是基于对MySQL游标基本概念的解释,若要获取更详细...

    MySQL使用游标批量处理进行表操作

    使用`DECLARE cursor_name CURSOR FOR select_statement`语句声明一个游标。`cursor_name`是你为游标指定的名称,`select_statement`是返回结果集的SQL查询。在这个过程中,SELECT语句不应该包含INTO子句,因为游标...

    Mysql的游标的定义使用及关闭深入分析

    以上就是MySQL游标的定义、使用和关闭的基本概念以及如何处理游标循环的细节。理解这些概念对于编写涉及复杂数据处理的存储过程至关重要。记住,游标虽然提供了逐行处理数据的能力,但也需要注意性能影响,因为它们...

    mysql声明游标的方法

    MySQL提供了声明和使用游标的机制,这在处理大量数据或者进行迭代操作时非常有用。以下将详细讲解MySQL声明游标的方法及游标的使用过程。 1. 声明变量和游标: 在MySQL中,首先需要声明用于存储数据的变量和游标。...

    带你彻底搞懂python操作mysql数据库(cursor游标讲解)

    Python操作MySQL数据库时,cursor(游标)是一个关键概念,它是数据库操作的核心工具。游标允许我们逐条处理查询结果,而不仅仅是一次性获取所有数据。游标的使用提供了更灵活的数据处理方式。 1. 什么是游标? ...

    Mysql中sql语句游标详解

    本文旨在深入探讨MySQL中游标的概念及其使用方法,帮助读者更好地理解和掌握游标在实际开发中的应用。 #### 二、游标概述 ##### 2.1 游标的基本概念 游标是数据库系统中的一个重要概念,它可以理解为一种可以从包含...

    mysql游标嵌套[文].pdf

    本文档旨在介绍 MySQL 游标嵌套的概念和实践,通过对游标的嵌套使用,演示如何实现复杂的数据操作。 一、游标嵌套简介 游标(Cursor)是数据库中的一种控制结构,可以用来遍历查询结果集。游标嵌套则是指在一个...

    mysql动态游标学习(mysql存储过程游标)

    在本示例中,我们将深入探讨如何在MySQL中使用动态游标,特别是结合存储过程来实现这一功能。 首先,创建了一个名为`webuser`的测试表,用于存放用户名数据。接着插入了一些示例数据,包括以'a'和'b'开头的用户。这...

    mysql中游标的使用案例详解(学习笔记)

    在MySQL中使用游标涉及到几个关键步骤: **2.1 声明游标** ```sql DECLARE cursor_name CURSOR FOR SELECT statement; ``` 这里`cursor_name`是你给游标起的名字,`SELECT statement`是你想要执行的查询语句。 **...

    MySQL游标概念与用法详解

    本文实例讲述了MySQL游标概念与用法。分享给大家供大家参考,具体如下: 1、游标的概念(Cursor) 一条sql,对应N条资源,取出资源的接口,就是游标,沿着游标,可以一次取出1行。如果开发过安卓的同学应该知道有一...

    MySQL游标:数据库操作的精准定位器

    本文将详细介绍MySQL中的游标概念及其工作原理,并通过实例代码展示如何使用游标。 #### 游标的工作原理 游标可以视为指向数据库查询结果集的指针,使得开发人员能够在应用程序中逐行读取和操作数据。具体流程如下...

Global site tag (gtag.js) - Google Analytics