zoukankan      html  css  js  c++  java
  • MySql命令——游标

    1.游标的概念

    有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。游标(cursor)是一个存储在 MySql 服务器上的数据库查询,它不是一条 select 语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。

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

    MySql 游标只能用于存储过程和函数。


    2.使用游标的步骤

    在能够使用游标前,必须定义它。这个过程实际上没有检索数据,它只是定义要使用的 select 语句;

    一旦声明后,必须打开游标以供使用。这个过程用前面定义的 select 语句把数据实际检索出来;

    对于填有数据的游标,根据需要取出各行;

    在游标结束使用时,必须关闭游标。


    3.创建游标

    游标用 declare 语句创建。

    declare 命名游标,并定义相应的 select 语句,根据需要带 where 和其它子句。

    create procedure processorder()
    
     begin    
    
      declare ordernumbers cursor   
    
       for    
    
      select value from test; 
    
    end;


    4.打开和关闭游标

    open ordernumbers; --打开 
    
    close orderbumbers; --关闭

    5.使用游标数据

    在一个游标被打开后,可以使用 fetch 语句分别访问它的每一行。

    fetch 指定检索什么数据,检索出来的数据存储在什么地方,它还向前移动游标中的内部行指针,使下一条 fetch 语句检索下一行(不重复读取同一行)。

    create procedure procders()
    begin
        --定义一个布尔变量 done 和 一个整型变量 o
        declare done boolean default 0;
        declare o int;
        
        --定义一个游标
        declare testYB cursor
        for
        select value test;
        
        --循环
        declare continue handler for sqlstate '02000' set done=1;
        
        --创建一张表
        create table if not exists test1(value text);
        
        --打开游标
        open testYB;
    
        repeat
    
        --读取到 o 中
        fetch testYB into o;
    
        --把 o 中的数据添加到 test1 表中
        insert into test1(value) values(o);
    
        until done end repeat;
    
        --关闭游标
        close testYB;
    end;
  • 相关阅读:
    fastcgi性能调优(转)
    nginx location配置(转)
    elasticsearch配置文件详解(转)
    linux常用信号集
    phpstorm快捷键总结
    浅谈MVC中的service层(转)
    php中的内存管理的介绍(转)
    使用C语言开发PHP扩展(转)
    Linux恢复误删除的文件或者目录(转)
    笔记整理3——python实现MAC分析地理位置
  • 原文地址:https://www.cnblogs.com/Luoma_HaoWei/p/3270885.html
Copyright © 2011-2022 走看看