MySql必知必会实战练习(六)游标

游标主要用于交互式应用,滚动屏幕上的数据,并对数据进行浏览或做出更改看一下下面的例子:输出:由于结果为多行无法显示,这时我们就需要使用游标来操作1.游标基本方法(1)创建游标(2)打开游

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

  游标主要用于交互式应用,滚动屏幕上的数据,并对数据进行浏览或做出更改

  看一下下面的例子:

drop procedure IF EXISTS processorders;
create procedure processorders(
    out ordernum int
)
begin
    select order_num from orders into ordernum;
end;

call processorders(@ordernum);
select ordernum;

  输出:

  MySql必知必会实战练习(六)游标

  由于结果为多行无法显示,这时我们就需要使用游标来操作

 1. 游标基本方法

(1)创建游标

create procedure processorders()
begin
    declare ordernums cursor for     select order_num from orders;
end;

 (2)打开游标

open ordernums;

(3)关闭游标

close ordernums;

  在一个游标关闭后,如果没有重新打开,则不能使用它。

  使用申明过的游标不需要再次声明,用open语句打开它就可以了。

2.游标使用示例

drop procedure IF EXISTS processorders;
create procedure processorders(
    out numbers int,
    out custid int
)
begin
    #声明游标
    declare ordernums cursor for
    select order_num,cust_id from orders;
    
    #打开游标
    open ordernums;
    
    #用来检索当前行的order_num(自动从第一行开始)
    fetch ordernums into numbers, custid;  
    
    #关闭游标
    close ordernums;
end;

call processorders(@numbers,@custid);
select @numbers,@custid;

   会看到只输出了第一行的order_num和cust_id:

MySql必知必会实战练习(六)游标

  继续,接下来将循环检索数据,从第一行到最后一行:

drop procedure IF EXISTS processorders;
create procedure processorders(
    out numbers int,
    out custid int
)
begin
    declare done boolean default 0;
    #声明游标
    declare ordernums cursor
    for
    select order_num,cust_id from orders;
    
    #声明CONTINUE HANDLER
    declare CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;     
    #打开游标
    open ordernums;
    
    #开始循环
    REPEAT
        #用来检索当前行的order_num(自动从第一行开始)
        fetch ordernums into numbers, custid;  
        
 #.....这里可以对每次检索出来的数据进行处理
        
    #结束循环
    UNTIL done END REPEAT;
    
    #关闭游标
    close ordernums;
end;

call processorders(@numbers,@custid);
select @numbers,@custid;

   我们会看出输出最后一行的order_num和cust_id

MySql必知必会实战练习(六)游标

  这样就实现了数据的循环检索,我们可以在 (#…..这里可以对每次检索出来的数据进行处理)注释处对每次检索出来的数据进行处理

  注意:上面我们定义了一个COUNtINUE HANDLEr,它是在条件出现时执行的代码,它指出SQLSTATE ‘02000’出现时set done = 1,最开始SQLSTATE ‘02000’是一个未找到的条件,只有当repeat没有更多的行供循环时才会出现SQLSTATE ‘02000’

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120050.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python学习–mac 下pycharm安装激活成功教程

    python学习–mac 下pycharm安装激活成功教程pycharm下载路径:http://www.https://www.jetbrains.com/pycharm/pycharm社区版:https://www.cr173.com/soft/752801.htmlpycharm激活成功教程:(1)hosts文件路径:sudovim/etc/hosts(2)将0.0.0.0account.jetbrains.com添加到hosts文件中…

  • jquery教程详解免费_jquery前端开发实战教程

    jquery教程详解免费_jquery前端开发实战教程jquery核心:writelessdomore1.jQuery语法基础语法:$(selector).action();2.文档就绪事件:文档完全加载完后执行函数第一种方式:$

  • wannacry病毒作者_wannacry病毒利用了哪种漏洞

    wannacry病毒作者_wannacry病毒利用了哪种漏洞1.样本概况1.1样本信息病毒名称:Trojan-Ransom.Win32.Wanna.m所属家族:木马/勒索/蠕虫MD5:DB349B97C37D22F5EA1D1841E3C89EB4SHA1:E889544AFF85FFAF8B0D0DA705105DEE7C97FE26CRC32:9FBB12271.2测试环境及工具…

  • ubuntu 卸载软件命令及方法[通俗易懂]

    ubuntu 卸载软件命令及方法[通俗易懂]1、如果是从UbuntuSoftwareCenter安装的,进入center,找到那个软件,很明显会有“卸载”的按钮;2、如果是tar、gz、zip之类解压就能用,免安装的,直接删除;3、如果是自己下载的deb包安装,或者通过apt-getinstall安装、或者通过添加ppa安装,使用sudoapt-getautoremovesoftware-name来卸载,为了一次卸干净,可以

  • smartctl命令详解_strace命令详解

    smartctl命令详解_strace命令详解smartctl命令详解定义smart(Self-Monitoring,AnalysisandReportingTechnology)是常用的磁盘检查工具smartctl:smartd由kernel-utils包缺省安装。用命令rpm-qlkernel-utils可以列出kernel-utils包中的文件它有一个守护进程(一个帮助程序)smartd,它能监视拥有自我监视,分析和汇报技术(Self-Monitoring,Analysis,andReportingTechnol

  • IGMP协议_igmp协议常用3种报文

    IGMP协议_igmp协议常用3种报文IGMP介绍

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号