MySQL中怎么运用游标
发布时间:2022-01-17 17:33:36 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍了MySQL中怎么使用游标,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 要明白什么是游标,首先要了解存储过程,存储过程是事先经过编译并且存储在数据库中的一段SQL语
这篇文章主要介绍了MySQL中怎么使用游标,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 要明白什么是游标,首先要了解存储过程,存储过程是事先经过编译并且存储在数据库中的一段SQL语句,他可以接受参数,也可以在其中使用IF语句、设置变量、循环等,比如下面语句用于创建一个存储过程。【相关推荐:mysql视频教程】 delimiter $$ create procedure select_all() begin select * from user; end;$$ 调用存储过程。 mysql> call select_all;$$ 存储过程可以减少数据库和应用服务器之间的传输,对提供数据库处理效率还是有好处的,而游标(Cursor)有的地方又叫光标,可以在存储过程中,对结果集进行循环处理,但是目前,MySQL只允许我们从SELECT语句从头到尾获取结果集中的每一行,无法从最后一行获取到第一行,也无法直接跳转到结果集中的指定行。 使用游标有以下几个步骤。 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; 实例 创建表 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); 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,用来退出循环。 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |