创建存储过程:使用 CREATE PROCEDURE语句。
格式:
CREATE PROCEDURE p_name(p_parameter[])
[characteristics...] routin_body
说明:CREATE PROCEDURE是用来创建存储函数的关键字;p_name 存储过程的名字。
p_parameter是参数列表,形式如下
[IN | OUT | INOUT] p_parameter TYPE
IN表示输入参数,OUT表示输出参数,INOUT既表示输入也表示输出 ,type 参数类型
例子:
CREATE PROCEDURE p_name()
BEGIN
SELECT *FROM fruits;
END;
此存储过程没有参数,BEGIN,END 限定存储过程体。
创建存储函数:使用
CREATE FUNCTION func_name([func_param])
RETURNS type
[characteristics...] routin_body
例子:
CREATE FUNCTION func_name()
RETURNS VARCHAR(50)
RETURN (SELECT f_name FROM fruits);
变量: 变量可以在子程序中声明并使用,这些变量的作用范围在BEGIN—END程序中
格式
DECLARE var1, var2, var3… INT DEFAULT 100;
SET var1 = 10, var2 = 20;
SET var3 = var1 + var2;
使用
#调用存储过程
CREATE PROCEDURE p1(IN id INT, OUT total INT)
BEGIN
SELECT COUNT(*) INTO total FROM fruits WHERE s_id = id;
END;
CALL p1(101, @total); #调用的时候,@符号必须有,参数名称随便
SELECT @total;
# 存储函数
CREATE FUNCTION func1(id INT)
RETURNS INT
BEGIN
RETURN (SELECT COUNT(*) FROM fruits WHERE s_id = id);
END;
SELECT func1(101) # 调用函数
查看存储过程和函数
SHOW {PROCEDURE | FUNCTION } STATUS LIKE '';
SELECT *FROM information_schema.ROUTINES; # mysql存储过程和函数的信息存储在information_schema数据库下的ROUTINES表中。
删除
DROP {PROCEDURE | FUNCTION} [IF EXISTS] pf_name;
来源:CSDN
作者:黑-白-色
链接:https://blog.csdn.net/weixin_45207388/article/details/104681099