`
haiyupeter
  • 浏览: 426227 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

mysql游标的应用

阅读更多

create procedure test(out d float)
begin
declare a,b int;
declare cur_1 cursor for select count(*) from sur_question;
DECLARE CONTINUE HANDLER for not found
set b = 1;
open cur_1;
  repeat
    fetch cur_1 into a;
    until b = 1
  end repeat;
close cur_1;
set d = a;
end



CREATE PROCEDURE p (OUT return_val INT)
BEGIN
DECLARE a,b INT;
DECLARE cur_1 CURSOR FOR SELECT count(*) from sur_question;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET b = 1;
OPEN cur_1;
REPEAT
FETCH cur_1 INTO a;
UNTIL b = 1
END REPEAT;
CLOSE cur_1;
SET return_val = a;
END;


 /*初始化*/ 
 drop procedure if exists  useCursor //    
 
 /*建立 存储过程 create */ 
 CREATE PROCEDURE useCursor()
    BEGIN
    /*局部变量的定义 declare*/ 
         declare tmpName varchar(20) default '' ;
         declare allName varchar(255) default '' ;
         
         declare cur1 CURSOR FOR SELECT name FROM test.level ;
         
         /*    mysql 不知道为什么用异常加入判断 ?
          *    此请参考官方文档 20.2.11. 光标 光标 
          *        这把 游标 异常后 捕捉 
          *        并设置 循环使用 变量 tmpname 为 null 跳出循环。
          */
         declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tmpname = null;
    
    
    /*开游标*/ 
     OPEN cur1;
         /*游标向下走一步*/ 
         FETCH cur1 INTO tmpName;
         
         /* 循环体 这很明显 把游标查询出的 name 都加起并用 ; 号隔开 */
      WHILE ( tmpname is not null) DO
          set tmpName = CONCAT(tmpName ,";") ;
          set allName = CONCAT(allName ,tmpName) ;
        /*游标向下走一步*/ 
        FETCH cur1 INTO tmpName;
      END WHILE;
  
    CLOSE cur1;
    
    select allName ;
END;//
call useCursor()//
 

运行结果:
mysql> call useCursor()//
+--------------------------------------+
| allName                              |
+--------------------------------------+
| f1;c3;c6;c5;c2;c4;c1;f1;f3;f4;f2;f5; |
+--------------------------------------+
1 row in set (0.00 sec)

分享到:
评论

相关推荐

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

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

    mysql游标

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

    mysql游标详解

    MySQL 游标详解 MySQL 从 5.0 版本开始支持存储过程和触发器,而游标在递归树结构中非常有用。游标是 MySQL 中的一种机制,允许开发人员在存储过程和触发器...通过正确地使用游标,可以提高应用程序的效率和可维护性。

    MySql游标的使用实例

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

    Mysql中sql语句游标详解

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

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

    ### MySQL 游标详解:数据库操作的精准定位器 #### MySQL 概览 MySQL 是一个广泛应用的开源关系型数据库管理系统(RDBMS),是LAMP技术栈的重要组成部分,该技术栈包括Linux操作系统、Apache Web服务器、MySQL...

    精准掌控数据流:MySQL游标在批量更新和删除中的应用

    ### MySQL 游标在批量更新和删除中的应用详解 #### 一、MySQL 游标概述 游标(Cursor)在数据库领域中是一个重要的概念,它主要用于处理查询结果集中的每一行记录,允许开发者以逐行的方式对数据进行访问和操作。...

    mysql游标的原理与用法实例分析

    MySQL游标是数据库管理系统中的一种机制,允许程序逐行处理查询结果集,而不是一次性加载所有数据。这在处理大量数据或者需要逐行处理结果时非常有用。游标提供了向前、向后滚动的能力,使得开发人员可以按需读取、...

    MySQL游标概念与用法详解

    MySQL游标是数据库管理系统提供的一种机制,允许程序按需逐行处理查询结果,而不是一次性获取所有数据。在大型数据集处理或需要分步执行复杂逻辑时,游标尤其有用。以下是对MySQL游标概念和用法的详细解释: 1. **...

    Oracle存储过程游标详解

    在实际应用中,游标可以用于指定结果集中特定行的位置、基于当前的结果集位置检索一行或连续的几行、在结果集中修改行中的数据、对其他用户所做的数据更改定义不同的敏感性级别、以编程的方式访问数据库等。...

    sql总结.doc

    在MySQL中,InnoDB引擎使用B+树实现索引,而MyISAM则使用非聚簇索引。创建索引可以提升查询速度、保证唯一性,但也消耗存储空间并降低数据更新效率。索引应建在经常查询、用于连接和排序的列上。 2. **存储过程**是...

    mysql函数、存储过程、触发器、游标.doc

    MySQL是世界上最流行的...这些特性使得MySQL成为开发高效数据库应用程序的理想选择,尤其是在需要大量处理和事务处理的场景下。通过熟练掌握这些概念,数据库管理员和开发者可以构建出更加健壮和高效的数据库解决方案。

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

    ### MySQL中游标的使用案例详解 #### 一、游标概念 在MySQL中,游标是一种重要的机制,它允许用户逐步处理查询结果集中的每一行数据。...因此,在设计应用程序时,应当根据具体情况合理选择是否使用游标。

    mysql触发器,游标

    - **不可滚动**:通常,MySQL游标不支持向前或向后滚动,只能按顺序读取。 - **敏感/不敏感**:敏感游标反映实时数据变化,而不敏感游标使用数据的临时副本,不受其他事务影响。 创建游标的基本步骤: 1. **声明...

    mysql存储过程_游标_项目练习

    6. 调用存储过程:最后,我们可以在MySQL客户端或者应用程序中调用这个存储过程,传入必要的参数并查看执行结果。 项目练习文件"project.txt"可能包含了具体的练习题目、示例代码或者数据库表结构等相关信息。通过...

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

    动态游标在实际应用中十分实用,例如在需要迭代处理大量数据但结果不确定的情况下。它可以用于逐行执行操作,如更新、插入或删除记录,或者根据处理结果进行复杂的业务逻辑判断。在存储过程中使用动态游标可以提高...

    mysql声明游标的方法

    在实际应用中,游标常用于存储过程和函数中,执行复杂的逻辑操作,如迭代处理、分步计算或逐行更新。例如,在员工薪资管理中,可以使用游标逐个计算员工的奖金,结合他们的基本薪资和提成。 总结来说,MySQL的游标...

    mysql存储过程 游标 循环使用介绍

    在MySQL中,游标的声明通常包括定义返回的列数据类型。例如: ```sql DECLARE feeCodeCursor CURSOR FOR SELECT feeCode FROM fee; ``` 游标可以设置为FOR UPDATE,允许我们在处理完当前行后再进行更新操作。 ...

    MYSQL数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程)

    MYSQL 数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程) MYSQL 数据库高级应用宝典含实例中,涵盖了索引、视图、触发器、游标和存储过程等高级应用领域。下面我们将逐一介绍这些高级应用领域的知识点...

    jdbcTemplate分页彻底解决,使用游标滚动

    在处理大量数据时,传统的分页方法可能会导致内存溢出,这时我们可以利用游标滚动来实现更高效、更节省内存的分页。本文将深入探讨如何使用`JdbcTemplate`配合游标滚动来解决分页问题,并结合提供的两个文件`...

Global site tag (gtag.js) - Google Analytics