mysql游标

作者: StrongZhao | 来源:发表于2018-05-11 14:48 被阅读14次
游标描述:

游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。
游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。游标实现了对mysql的存储过程中循环读取数据表中的对象的过程。

游标的特性:
  • READ ONLY 只读,只能取值而不能赋值
  • NOT SCROOLABLE 不可回滚,只能顺序读取
  • ASENSITIVE 敏感,不能在已经打开游标的表上执行update事务
游标的操作:
  1. 声明游标: declare cursor_name cursor for select_statement
    这个语句声明一个游标。也可以在子程序中定义多个游标,但是一个块中的每一个游标必须有唯一的名字。
  2. 打开游标: open cursor_name
  3. 游标fetch:fetch cursor_name into var_name , var_name2 ...
    这个语句用指定的打开游标读取下一行(如果有下一行的话),并且前进游标指针。
  4. 关闭游标close: close cursor_name
    这个语句关闭先前打开的游标。如果未被明确地关闭,游标在它被声明的复合语句的末尾被关闭。
游标的使用:

ex:

-- 创建存储过程cursorTest
create procedure cursorTest()
--使用复合语句
begin
      -- 声明isdone变量并设置默认值为0
     declare isdone int default 0;
     declare id1,id2 int;
     declare name char(5);
     -- 声明游标
     declare cur1 cursor for select id,name from user;
     declare cur2 cursor for select id from user_temp;
     declare continue handler for SQLSTATE 2000 set isdone =1;
     -- 打开游标
     open cur1;
     open cur2;
     -- 循环遍历
     repeat
          -- 获取游标内容
          fetch cur1 into id1, name;
          fetch cur2 into id2;
          -- 条件语句判断
          if not isdone then
              if id1 < id2 then
                   insert into user_temp2 value(id1,name);
              else
                  insert into user_temp2 values(id2,name);
              end if;
          end if;
     until isdone end repeat;
    --关闭游标
    close cur1;
    close cur2;
END;

相关文章

  • SQL第21课:使用游标

    mysql 游标的使用 游标是什么?? 游标是一个存储在MySQL服务器上的数据库查询,它不是一条select语句...

  • MySQL优化系列11-MySQL游标和绑定变量

    备注:测试数据库版本为MySQL 8.0 一. MySQL游标简介 MySQL在服务器端提供只读的、单向的游标,而...

  • Python: 03. python-pymysql 连接mys

    查询实例 安装pymysql 依赖 02 代码导入pymysql 03 连接mysql 04 打开游标 05 游标...

  • mysql游标

    游标描述: 游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行...

  • mysql 游标

    概念 游标如同C语言中读取文件函数返回的文件句柄一样,指向文件开头对文件进行读取,而游标则是对sql的返回结果如同...

  • 学习笔记

    python 对线程 python MySQLDB mysql 游标 存储过程

  • MySQL 游标的基本用法

    MySQL游标只能用于存储过程。使用游标的步骤:①在能够使用游标前,必须声明它。这个过程实际上没有检索数据,它只是...

  • 数据库-游标学习

    学习python连接mysql,对游标这个词很陌生,专门在网上搜索了游标的基础知识,并进行了大致的学习。 1、游标...

  • mysql必知必会(24):游标

    一、游标 版本要求:MySQL5+ 游标(cursor)是一个存储在MySQL服务器上的数据库查询,它不是一条SE...

  • mysql游标例子

    创建游标首先在MySql中创建一张数据表: CREATE TABLE IF NOT EXISTS store (i...

网友评论

    本文标题:mysql游标

    本文链接:https://www.haomeiwen.com/subject/ntufdftx.html