创建封装
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
运行此封装