美文网首页
存储过程(三)

存储过程(三)

作者: 三斤耳朵 | 来源:发表于2018-12-10 23:52 被阅读79次

演示一个完整的使用游标的案例

mysql> CREATE TABLE IF NOT EXISTS `store` (
    -> `id` int(11) NOT NULL AUTO_INCREMENT,
    -> `name` varchar(20) NOT NULL,
    -> `count` int(11) NOT NULL DEFAULT '1',
    -> PRIMARY KEY (`id`)
    -> );
Query OK, 0 rows affected (0.07 sec)

mysql> INSERT INTO `store` (`id`, `name`, `count`) VALUES (1, 'android', 15), 
(2, 'iphone', 14),(3, 'iphone', 20), (4, 'android', 5),(5, 'android', 13),
(6, 'iphone', 13);
Query OK, 6 rows affected (0.05 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> CREATE PROCEDURE StatisticStore()
    -> BEGIN
    --创建接收游标数据的变量
    -> declare c int;
    -> declare n varchar(20);
    --创建总数变量
    -> declare total int default 0;
    --创建结束标志变量
    -> declare done int default false;
    --创建游标
    -> declare cur cursor for select name,count from store where name = 'iphone';
    --指定游标循环结束时的返回值
    -> declare continue HANDLER for not found set done = true;
    --设置初始值
    -> set total = 0;
    --打开游标
    -> open cur;
    --开始循环游标里的数据
    -> iphone_loop:loop
    --根据游标当前指向的一条数据
    -> fetch cur into n,c;
    --判断游标的循环是否结束
    -> if done then
    -> leave iphone_loop;--跳出游标循环
    -> end if;
    --获取一条数据时,将count值进行累加操作,这里可以做任意你想做的操作,
    -> set total = total + c;
    --结束游标循环
    -> end loop;
    --关闭游标
    -> close cur;
    --输出结果
    -> select n,total;
    -> end //
Query OK, 0 rows affected (0.04 sec)

mysql> call StatisticStore();
+--------+-------+
| n      | total |
+--------+-------+
| iphone |    47 |
+--------+-------+
1 row in set (0.04 sec)

Query OK, 0 rows affected (0.04 sec)

相关文章

  • 存储过程(三)

    演示一个完整的使用游标的案例

  • SQL Server基础之存储过程

    阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存...

  • Mysql存储过程

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 创建存储过程 调用存储过程 存储过程...

  • MySQL批量添加数据

    创建存储过程 执行存储过程 删除存储过程

  • 17 存储过程

    过程: 函数: 过程是没有返回值的函数 存储过程: 存储过程语法 存储过程1--创建简单的存储过程 存储过程2--...

  • 存储过程

    详见存储过程详解 创建存储过程 使用存储过程 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一...

  • 存储过程与函数

    存储过程与函数存储过程的定义存储过程的创建存储过程的操作自定义函数 存储过程与函数 存储过程的定义 运行效率高 降...

  • 存储过程

    ps 不能修改过程体,要修改过程体必须先删除存储过程,再重建 mysql变量的术语分类: 1.用户变量:以"@"开...

  • 存储过程

    存储过程 过程,可以简单理解为是一个函数。 函数和过程的区别:函数总是向调用者返回数据,而过程没有数据返回。 Or...

  • 存储过程

    存储过程(Stored Procedure)是一个可编程的函数,是为了完成特定功能的SQL语句集;创建的存储过程保...

网友评论

      本文标题:存储过程(三)

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