xml地图|网站地图|网站标签 [设为首页] [加入收藏]

Mysql中的存储过程,中的存储过程

来源:http://www.ccidsi.com 作者:集成介绍 人气:126 发布时间:2019-05-19
摘要:开创3个轻便的积累进程 储存进度proc_adder功用一点也不细略,几个整型输入参数a和b,三个整型输出参数sum,作用就是计量输入参数a和b的结果,赋值给输出参数sum; 几点表达: DELIMI

开创3个轻便的积累进程

储存进度proc_adder功用一点也不细略,几个整型输入参数a和b,三个整型输出参数sum,作用就是计量输入参数a和b的结果,赋值给输出参数sum;

几点表达:

DELIMITE途观 ;;:从前说过了,把暗中认可的输入的竣事符;替换到;;。

DEFINER:创建者;

5929皇家赌场,call  : 调用存款和储蓄进程,用 call 命令

-- ----------------------------
-- Procedure structure for `proc_adder`
-- ----------------------------
DROP PROCEDURE IF EXISTS `proc_adder`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)
BEGIN
    #Routine body goes here...

    DECLARE c int;
    if a is null then set a = 0; 
    end if;

    if b is null then set b = 0;
    end if;

    set sum  = a   b;
END
;;
DELIMITER ;

  举办以上存款和储蓄结果,验证是或不是正确,如下图,结果OK:

set @b=5;
call proc_adder(2,@b,@s);
select @s as sum;

5929皇家赌场 1

一 什么是积累进程

  • 差不离的说,就是一组SQL语句集,效能壮大,能够已毕部分相比复杂的逻辑作用,类似于JAVA语言中的方法;
  • ps:存款和储蓄进程跟触发器有一点点类似,都以壹组SQL集,不过存款和储蓄进度是积极调用的,且效果比触发器更抓实有力,触发器是某件事触发后自行调用。

什么是积攒进程

简单来说,便是壹组SQL语句集,作用庞大,能够兑现部分比较复杂的逻辑功用,类似于JAVA语言中的方法;

ps:存储进度跟触发器有一点类似,都以1组SQL集,可是存款和储蓄进度是知难而进调用的,且效能比触发器越发有力,触发器是某件事触发后活动调用;

累积进度中的调整语句

IF语句:

5929皇家赌场 2

-- ----------------------------
-- Procedure structure for `proc_if`
-- ----------------------------
DROP PROCEDURE IF EXISTS `proc_if`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_if`(IN type int)
BEGIN
    #Routine body goes here...
    DECLARE c varchar(500);
    IF type = 0 THEN
        set c = 'param is 0';
    ELSEIF type = 1 THEN
        set c = 'param is 1';
    ELSE
        set c = 'param is others, not 0 or 1';
    END IF;
    select c;
END
;;
DELIMITER ;

5929皇家赌场 3

5929皇家赌场 4

CASE语句:

5929皇家赌场 5

-- ----------------------------
-- Procedure structure for `proc_case`
-- ----------------------------
DROP PROCEDURE IF EXISTS `proc_case`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_case`(IN type int)
BEGIN
    #Routine body goes here...
    DECLARE c varchar(500);
    CASE type
    WHEN 0 THEN
        set c = 'param is 0';
    WHEN 1 THEN
        set c = 'param is 1';
    ELSE
        set c = 'param is others, not 0 or 1';
    END CASE;
    select c;
END
;;
DELIMITER ;

5929皇家赌场 6

5929皇家赌场 7

循环while语句:

5929皇家赌场 8

-- ----------------------------
-- Procedure structure for `proc_while`
-- ----------------------------
DROP PROCEDURE IF EXISTS `proc_while`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_while`(IN n int)
BEGIN
    #Routine body goes here...
    DECLARE i int;
    DECLARE s int;
    SET i = 0;
    SET s = 0;
    WHILE i <= n DO
        set s = s   i;
        set i = i   1;
    END WHILE;
    SELECT s;
END
;;
DELIMITER ;

5929皇家赌场 9

5929皇家赌场 10

二 有何样特征

  • 有输入输出参数,能够评释变量,有if/else, case,while等决定语句,通过编写制定期存款款和储蓄进程,能够兑现复杂的逻辑成效;
  • 函数的科学普及性子:模块化,封装,代码复用;
  • 速度快,唯有第3次推行需通过编写翻译和优化步骤,后续被调用能够一向推行,省去以上步骤。

有怎么样特点

有输入输出参数,能够注解变量,有if/else, case,while等决定语句,通过编写制定存款和储蓄进程,能够兑现复杂的逻辑作用;

函数的宽广天性:模块化,封装,代码复用;

进度快,只有第3遍实施需通过编写翻译和优化步骤,后续被调用能够一贯实践,省去以上步骤;

本文由68399皇家赌场发布于集成介绍,转载请注明出处:Mysql中的存储过程,中的存储过程

关键词: 68399皇家赌场 mysql 数据库

最火资讯