存储过程学习

存储过程学习
1. 简单的存储过程

    DROP PROCEDURE IF EXISTS hi;
    CREATE PROCEDURE hi() SELECT 'hello';
    CALL hi();

这里写图片描述

  1. 输入 两个数字 输出结果
DROP PROCEDURE IF EXISTS sel;
DELIMITER //
CREATE PROCEDURE sel(a INT,b INT)
BEGIN
    DECLARE c INT DEFAULT 0;
    IF a IS NULL THEN
        SET a=9;
        END IF;
    IF b IS NULL THEN 
        SET b=1;
        END IF;
    SET c = a +b;
    SELECT c AS num;
END
// 
DELIMITER //;


CALL sel(NULL,20)

输出结果 29

3.查询一个表中的值 insert到另外一张表中

DROP PROCEDURE IF EXISTS selAdd;
DELIMITER //
CREATE PROCEDURE selAdd()
BEGIN 
    ## 声明变量 nameage
    DECLARE stuName VARCHAR(100);
    DECLARE age INT DEFAULT 0;  
    ## 定义游标
    DECLARE cur1 CURSOR FOR SELECT NAME,age FROM student WHERE NAME<10;

    ##打开游标
    OPEN cur1;

    ##循环
    REPEAT 
        FETCH cur1 INTO stuName,age;
        INSERT INTO test (NAME,age) VALUES(stuName,age);
        UNTIL age>10 END REPEAT;
    ##关闭游标
    CLOSE cur1;
END//
DELIMITER //;

CALL selAdd();

student表

STUDENT表

test 表
这里写图片描述

执行 CALL selAdd(); 后的test表
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值