• 技术文章 >数据库 >MySQL

    数据库mysql中如何使用光标?需要注意什么?

    小妮浅浅小妮浅浅2020-12-05 09:14:20原创3109

    我们在查询数据的时候,因为数量太多用会出现查找困难的情况,这时候如果能有光标来帮助我们,处理数据就会节约很大的功夫。有的小伙伴不知道光标是什么可以查一下它的图片,我们使用电脑出现的指针箭头就是其中的一种。下面我们就数据库mysql中使用光标的方法给大家带来分享,同时讲解需要注意的地方。


    查询语句可能返回多条记录,如果数据非常大,需要在存储过程和函数中使用光标来逐条读取查询结果集中的记录。

    简单光标在存储程序和函数内被支持。语法如同在嵌入的SQL中。光标当前是不敏感的,只读的及不滚动的。不敏感意为服务器可以活不可以复制它的结果表。

    注意:光标必须在声明处理程序之前被声明,并且变量和条件必须在声明光标或处理程序之前被声明。

    例如:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    CREATE PROCEDURE curdemo()

    BEGIN

      DECLARE done INT DEFAULT 0;

      DECLARE a CHAR(16);

      DECLARE b,c INT;

      DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;

      DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;

      DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

      

      OPEN cur1;

      OPEN cur2;

      

      REPEAT

        FETCH cur1 INTO a, b;

        FETCH cur2 INTO c;

        IF NOT done THEN

           IF b < c THEN

              INSERT INTO test.t3 VALUES (a,b);

           ELSE

              INSERT INTO test.t3 VALUES (a,c);

           END IF;

        END IF;

      UNTIL done END REPEAT;

      

      CLOSE cur1;

      CLOSE cur2;

    END

    声明光标

    语法格式如下:declare cursor_name cursor for select_statement

    cursor_name:光标名;select_statement:select语句的内容,返回一个用于创建光标的结果集。

    1

    declare cursor_fruit cursor for select fname,fprice from fruits;


    到这里我们对光标的讲解就结束了,还有的小伙伴可能会对游标产生疑问,其实这二者是同一种东西,大家可要记好了哦。

    专题推荐:数据库mysql
    上一篇:数据库mysql中LEAVE与ITERATE的区别是什么 下一篇:in在数据库mysql中筛选范围

    相关文章推荐

    • 数据库mysql中case给成绩划分等级• null怎样在数据库mysql中变为特定值• 数据库mysql中LIMIT取值• loop在数据库mysql中进行循环• 数据库mysql中repeat是什么• while在数据库mysql中判断变量• 数据库mysql中LEAVE与ITERATE的区别是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网