iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql游标的原理与用法实例分析
  • 545
分享到

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

mysql游标 2022-05-12 14:05:39 545人浏览 泡泡鱼
摘要

本文实例讲述了Mysql游标的原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是游标 创建游标 使用游标 首发日期:2018-04-18 什么是游标: 如果你前面看过mysql

本文实例讲述了Mysql游标的原理与用法。分享给大家供大家参考,具体如下:

本文内容:

  • 什么是游标
  • 创建游标
  • 使用游标

首发日期:2018-04-18


什么是游标:

  • 如果你前面看过mysql函数,会发现无法使用返回多行结果的语句。但如果你又确实想要使用时,就需要使用到游标,游标可以帮你选择出某个结果(这样就可以做到返回单个结果)。
  • 另外,使用游标也可以轻易的取出在检索出来的行中前进或后退一行或多行的结果。
  • 游标可以遍历返回的多行结果。

补充:

  • Mysql中游标只适用于存储过程以及函数。


创建游标:

  • 语法:
    • 1.定义游标:declare 游标名 cursor for select语句;
    • 2.打开游标:open 游标名;
    • 获取结果:fetch 游标名 into 变量名[,变量名];
    • 关闭游标:close 游标名;
      
      create procedure p1()
      begin
        declare id int;
        declare name varchar(15);
        -- 声明游标
        declare mc cursor for select * from class;
        -- 打开游标
        open mc;
        -- 获取结果
        fetch mc into id,name;
        -- 这里是为了显示获取结果
        select id,name;
        -- 关闭游标
        close mc;
        
      end;
      
      create procedure p2()
      begin
        declare id int;
        declare name varchar(15);
        -- 声明游标
        declare mc cursor for select * from class;
        -- 打开游标
        open mc;
        -- 获取结果
        loop -- 循环,将表的内容都转移到class2中
        fetch mc into id,name;
        -- 这里是为了显示获取结果
        insert into class2 values(id,name);
        -- 关闭游标
        end loop;
        close mc;
        
      end;


使用游标:

  • 游标每一次fetch都是获取一行结果,可以使用变量来获取fetch到的每一列的值
    
    create procedure p2()
    begin
      declare id int;
      declare name varchar(15);
      -- 声明游标
      declare mc cursor for select * from class;
      -- 打开游标
      open mc;
      -- 获取结果
      loop -- 循环,将表的内容都转移到class2中
      fetch mc into id,name;
      -- 这里是为了显示获取结果
      insert into class2 values(id,name);
      -- 关闭游标
      end loop;
      close mc;
      
    end;

上面的代码会有一个报错image,不断循环的话,始终会达到表的末尾,到了末尾就无法继续fetch,一般来说都要避免报错,到了末尾前会有一个mysql定义的


create procedure p3()
begin
  declare id int;
  declare name varchar(15);
  declare flag int default 0;
  -- 声明游标
  declare mc cursor for select * from class;
  declare continue handler for not found set flag = 1;
  -- 打开游标
  open mc;
  -- 获取结果
  l2:loop 
  
  fetch mc into id,name;
  if flag=1 then -- 当无法fetch会触发handler continue
    leave l2;
  end if;
  -- 这里是为了显示获取结果
  insert into class2 values(id,name);
  -- 关闭游标
  end loop;
  close mc;
  
end;

call p3();-- 不报错
select * from class2;

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库相关技巧汇总》及《MySQL常用函数大汇总》

希望本文所述对大家MySQL数据库计有所帮助。

您可能感兴趣的文档:

--结束END--

本文标题: mysql游标的原理与用法实例分析

本文链接: https://www.lsjlt.com/news/9530.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql累积聚合原理与用法实例分析
    本文实例讲述了mysql累积聚合原理与用法。分享给大家供大家参考,具体如下: 累积聚合为聚合从序列内第一个元素到当前元素的数据,如为每个员工返回每月开始到现在累积的订单数量和平均订单数量 行号问题有两个解决...
    99+
    2024-04-02
  • MySQL游标和异常处理的示例分析
    这篇文章给大家分享的是有关MySQL游标和异常处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。复杂异常处理drop procedure ...
    99+
    2024-04-02
  • MySQL原理与优化的案例分析
    这篇文章主要介绍MySQL原理与优化的案例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL是目前互联网公司应用最广泛的数据库软件(DBMS),没有之一。小至初创公司,大至...
    99+
    2024-04-02
  • mysql中复制原理与实践应用的示例分析
    这篇文章主要介绍了mysql中复制原理与实践应用的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。复制功能是将一个mysql数据库上的...
    99+
    2024-04-02
  • mysql滑动订单问题原理与解决方法实例分析
    本文实例讲述了mysql滑动订单问题原理与解决方法。分享给大家供大家参考,具体如下: 先根据以下代码来创建表MonthlyOrders并导入一定的数据 CREATE TABLE MonthlyOrder...
    99+
    2024-04-02
  • Mysql索引实现原理的示例分析
    这篇文章主要为大家展示了“Mysql索引实现原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mysql索引实现原理的示例分析”这篇文章吧。MySQL...
    99+
    2024-04-02
  • Java的Synchronized原理与Callable接口实例分析
    这篇“Java的Synchronized原理与Callable接口实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Ja...
    99+
    2023-06-29
  • MySQL分区表原理的示例分析
    这篇文章主要为大家展示了“MySQL分区表原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL分区表原理的示例分析”这篇文章吧。1、分区表含义...
    99+
    2024-04-02
  • JS中bridge的原理与封装实例分析
    本篇内容主要讲解“JS中bridge的原理与封装实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS中bridge的原理与封装实例分析”吧!一、hybird背景介绍一般原生app发版周期长...
    99+
    2023-07-02
  • mysql视图功能与用法实例分析
    本文实例讲述了mysql视图功能与用法。分享给大家供大家参考,具体如下: 通俗的讲,视图就是一条SELECT语句执行后返回的结果集。 //单表视图 CREATE [ALGORITHM]={U...
    99+
    2024-04-02
  • MyBatisdiscriminator标签原理实例解析
    目录一、什么业务情况会使用discriminator标签?二、discriminator使用Mapper接口配置测试三、discriminator原理Discriminator对象结...
    99+
    2023-02-05
    MyBatis discriminator标签 MyBatis discriminator
  • MySQL视图原理的示例分析
    这篇文章主要介绍MySQL视图原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:概述视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列...
    99+
    2024-04-02
  • MySQL中流程控制和游标的示例分析
    小编给大家分享一下MySQL中流程控制和游标的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!学习或者了解过编程语言的都知道,任何一门编程语言都不可能只通过一两句语句代码完成。流程控...
    99+
    2024-04-02
  • Oracle与MySQL内嵌游标的使用示例
    Oracle 游标用For循环比较简单,MySQL也是最近才开始用,感觉稍微麻烦一点,下边直接上代码: -----------------------------------------...
    99+
    2024-04-02
  • MySQL MVCC 原理分析与应用指南
    MySQL MVCC 原理分析与应用指南摘要:MySQL是一款非常流行的关系型数据库管理系统,具有并发性能好的特点。这得益于MySQL的多版本并发控制(MVCC)技术。本文将深入探讨MySQL MVCC的原理,并提供一些实际应用场景的指南。...
    99+
    2023-10-22
    原理 应用 mvcc
  • SQL游标的原理和使用方法
    这篇文章主要介绍“SQL游标的原理和使用方法”,在日常操作中,相信很多人在SQL游标的原理和使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL游标的原理和使用方法”...
    99+
    2024-04-02
  • MySQL数据库优化之索引实现原理与用法分析
    本文实例讲述了MySQL数据库优化之索引实现原理与用法。分享给大家供大家参考,具体如下: 索引 什么是索引 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行...
    99+
    2024-04-02
  • mysql中视图原理的示例分析
    小编给大家分享一下mysql中视图原理的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、什么是视图视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视...
    99+
    2024-04-02
  • 解析Android AIDL的实例与原理
    目录一、概述二、创建 .aidl 文件三、生成 .java 文件四、传输复杂数据五、建立 service六、获取服务七、分析调用过程一、概述 简单来说,AIDL 就是定义一个接口,客...
    99+
    2024-04-02
  • HTML标签与元素实例分析
    这篇文章主要讲解了“HTML标签与元素实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML标签与元素实例分析”吧!什么是标签标签就是上面这些<...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作