MySQL中什么是游标?如何使用游标?

MySQL中什么是游标?如何使用游标?,第1张

概述什么是游标?如何使用游标?下面本篇文章就来带大家了解一下MySQL中的游标,介绍一下使用游标的步骤,希望对大家有所帮助!

什么是游标?如何使用游标?下面本篇文章就来带大家了解一下MysqL中的游标,介绍一下使用游标的步骤,希望对大家有所帮助!

要明白什么是游标,首先要了解存储过程,存储过程是事先经过编译并且存储在数据库中的一段SQL语句,他可以接受参数,也可以在其中使用IF语句、设置变量、循环等,比如下面语句用于创建一个存储过程。【相关推荐:mysql视频教程】

delimiter $$create procedure select_all() begin select * from user; end;$$

调用存储过程。

MysqL>  call select_all;$$

存储过程可以减少数据库和应用服务器之间的传输,对提供数据库处理效率还是有好处的,而游标(Cursor)有的地方又叫光标,可以在存储过程中,对结果集进行循环处理,但是目前,MysqL只允许我们从SELECT语句从头到尾获取结果集中的每一行,无法从最后一行获取到第一行,也无法直接跳转到结果集中的指定行。

使用游标有以下几个步骤@H_301_23@。

1、游标定义

DECLARE cursor_name CURSOR FOR select_statement

2、打开游标

OPEN cursor_name;

3、获取游标中的数据

FETCH cursor_name INTO var_name [, var_name]...

4、关闭光标

CLOSE cursor_name;

5、释放光标

DEALLOCATE cursor_name;
实例@H_301_23@

创建表

CREATE table cursor_table(ID INT ,name VARCHAR(10),age INT)ENGINE=innoDB DEFAulT CHARSET=utf8;insert into cursor_table values(1, '张三', 500);insert into cursor_table values(2, '李四', 200);insert into cursor_table values(3, '王五', 100);insert into cursor_table values(4, '老六', 20);create table cursor_table_user(name varchar(10));

下面我们通过游标,遍历cursor_table表,把年龄大于30的人名存放到cursor_table_user

drop procedure getTotal;delete from cursor_table_user ;CREATE  PROCEDURE getTotal()BEGIN     DECLARE total INT;    DECLARE sID INT;     DECLARE sname VARCHAR(10);     DECLARE sage INT;     DECLARE done INT DEFAulT false;     DECLARE cur CURSOR FOR SELECT ID,name,age from cursor_table where age>30;     DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;      SET total = 0;     OPEN cur;     FETCH cur INTO sID, sname, sage;     WHILE(NOT done)    DO         insert cursor_table_user values(sname);       SET total = total + 1;         FETCH cur INTO sID, sname, sage;            END WHILE;     CLOSE cur;     SELECT total;  END
call getTotal();MysqL> select * from cursor_table_user;+--------+| name   |+--------+| 张三   || 李四   || 王五   |+--------+3 rows in set (0.00 sec)

这段程序有一行非常重要,DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;  ,他表示如果游标或SELECT语句没有数据的时候,将done变量的值设置  为 true,用来退出循环。

下面就是通过WHILE来依次遍历。

原文地址:https://juejin.cn/post/7003237966952792077

更多编程相关知识,请访问:编程视频!!

总结

以上是内存溢出为你收集整理的MySQL中什么是游标?如何使用游标?全部内容,希望文章能够帮你解决MySQL中什么是游标?如何使用游标?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1149764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存