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’

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

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

(0)
上一篇 2021年12月29日 下午9:00
下一篇 2021年12月29日 下午9:00


相关推荐

  • vb语法菜鸟教程_VS VB

    vb语法菜鸟教程_VS VB  VB.Net教程简介:VB.Net是一种简单,现代,面向对象的计算机编程语言,由微软开发,将.NET Framework和公共语言运行库的强大功能与作为Visual Basic标志的生产力优势相结合。VisualBasic.NET(VB.NET)是在.NETFramework上实现的面向对象的计算机编程语言。虽然它是经典的VisualBasic语言的演变,但是它不…

    2026年4月16日
    7
  • 安捷伦频谱仪详解_安捷伦频谱仪工作原理

    安捷伦频谱仪详解_安捷伦频谱仪工作原理R3131A频谱仪简单操作使用方法一.R3131A频谱仪简介。R3131A频谱仪是日本ADVANTEST公司的产品,用于测量高频信号,可测量的频率范围为9K—3GHz。对于GSM手机的维修,通过频谱仪可测量射频电路中的以下电路信号,(维修人员可以通过对所测出信号的幅度、频率偏移、干扰程度等参数的分析,以判断出故障点,进行快速有效的维修):1.手机参考基准时钟(13M,26M等);2.射频本振…

    2022年8月11日
    7
  • VBoxManage常用命令「建议收藏」

    VBoxManage常用命令「建议收藏」目录0x01常用命令0x02全部参数0x01常用命令#列出全部虚拟机VBoxManagelistvms#列出全部运行中的虚拟机VBoxManagelistrunningvms#列出虚拟机信息VBoxManageshowvminfouuid|vmname#开启虚拟机VBoxManagestartvmuuid|vmname#…

    2022年4月29日
    134
  • python解析XML文件并转存到excel「建议收藏」

    python解析XML文件并转存到excel「建议收藏」python解析XML文件并转存到excel转换前的xml文档信息如下:处理后的效果如下:python代码如下:importxml.saxfromopenpyxlimportWorkbook,load_workbookimportosdefwrite_to_excel(two_dimension_list):path=os.path.dirname(os.path.realpath(__file__))#gettheparentpathofc

    2022年8月22日
    31
  • Ubuntu apt-get彻底卸载软件包

    Ubuntu apt-get彻底卸载软件包如果你关注搜索到这篇文章,那么我可以合理怀疑你被apt-get的几个卸载命令有点搞晕了。apt-get的卸载相关的命令有remove/purge/autoremove/clean/autoclean等。具体来说:apt-getpurge/apt-get–purgeremove删除已安装包(不保留配置文件)。如软件包a,依赖软件包b,则执行该命令会删除a,而且不保留配置文…

    2022年5月30日
    48
  • 局域网搭建FTP服务器并进行访问

    局域网搭建FTP服务器并进行访问1 右键 此电脑 选择管理 进入管理界面打开本地用户和组选项 2 右键用户 选择新用户 开始创建用户 填写用户名 密码 点击创建 右边的用户列表就会显示新创建的用户 3 进入控制面板 gt 程序 gt 程序和功能 点击 启用或关闭 Windows 功能 4 在 Internet 信息服务 然后再 FTP 服务器前打勾 然后点击确定按钮 5 添加完 IIS 服务后 开始创建 FTP 站点 右键我的电脑选择管理 进入管理界面 找到服务和应用程序 接着点击 InternetInfo I

    2026年3月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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