mysql数据库---存储过程小记

1 如何理解存储过程
简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;
ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;
有哪些特性
2 特性
有输入输出参数,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能;
函数的普遍特性:模块化,封装,代码复用;
速度快,只有首次执行需经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤;
3 创建简单的存储过程
3.1 if else

DROP PROCEDURE IF EXISTS testprocedure;
DELIMITER ;;
CREATE PROCEDURE testprocedure (in a INT,in b INT,OUT num INT)
BEGIN
DECLARE c INT;
IF a is NULL THEN SET a=0;
END IF;
IF b is NULL then SET b=0;
END IF;
SET c=a+b;
SET num=c;
END
;;
DELIMITER ;

这里写图片描述

3.2 case

DROP PROCEDURE if EXISTS testcase;
DELIMITER ;;
CREATE PROCEDURE testcase(IN type INT)
BEGIN
    DECLARE output VARCHAR(500);
    CASE type
    WHEN 0 THEN
    SET output="参数为0";
    WHEN 1 THEN
    SET output="参数为1";
    ELSE
    SET output="参数是其他";
    END CASE;
    SELECT output;
END
;;
DELIMITER ;

这里写图片描述

3 while

DROP PROCEDURE IF EXISTS testwhile;
delimiter;;
CREATE PROCEDURE testwhile()
BEGIN
    DECLARE a INT;
    DECLARE i INT;
    SET a=0;
    SET i=0;
    WHILE i<=100 DO
        set a=a+i;
        SET i=i+1;
    END WHILE;
SELECT a;
END
;;
delimiter ;

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值