11存储过程

创建封装

CREATE PROCEDURE p1() 
BEGIN
    INSERT INTO goods VALUES(null,'寒舍',50);    
    SELECT * FROM goods;
END

使用封装

CALL p1();

 

传参创建带有参数的封装

#入参IN、出参OUT、出入参OUTIN
CREATE PROCEDURE p2(IN i INT,INOUT names VARCHAR(50)) 
BEGIN
    UPDATE goods SET name=names WHERE id=i;
    SELECT names;
END

 

 使用带有参数的封装,出参传参必须先赋个值

SET @names='大鹅';
CALL p2(4,@names);

 

 将查询到的值赋值给其他,INTO关键字可以将前面字段的查询结果执行给INTO后面的变量

SELECT 要查询的值 INTO 要赋的值 FROM ...

 

 

控制--创建带有参数和条件的封装

CREATE PROCEDURE p3(IN flag CHAR(5),IN nums INT)
BEGIN
    IF flag='true' THEN SELECT * FROM goods WHERE num<nums;
    ELSEIF flag='false' THEN SELECT * FROM goods WHERE num>nums;
    ELSE SELECT * FROM goods;
    END IF;
END 

 

 使用

CALL p3('false',20);

 

 

 

循环--创建一个计算1到100的和的封装

#计算1到100的和
CREATE PROCEDURE p4(IN n INT,OUT m INT)
BEGIN
    DECLARE i INT DEFAULT 0;
    DECLARE sums INT;
    SET sums=0;
    WHILE i<=n DO
        SET sums=sums+i;
        SET i=i+1;
    END WHILE;
    SET m=sums;
END

 

运行此封装

 

posted @ 2019-02-06 16:45  余火灬  阅读(109)  评论(0编辑  收藏  举报