mysql存储过程,存储函数

一:存储过程

存储程序包括存储函数和存储过程.存储过程有它独特的优势,存储过程大大地减少了业务系统与数据库的交互,一定程度降低了业务系统与数据库的耦合.还有执行效率高,编写方便,功能强大等等,但一定要注意其应用场景。一般使用与业务逻辑简单稳定的场景,不适用业务逻辑复杂经常变换的场景.如果表换个结构,要改很多存储过程,各有利弊吧.

存储过程基本语法:
CREATE PROCEDURE pro_name([IN|OUT|INOUT] param_name type)
[characteristics...]continue_body
pro_name代表存储过程名称
in表示输入参数,out表示输出参数,inout既可以输入又可以输出,param_name代表参数名称,type表示参数类型.
characteristics表示存储过程特性(规定一些注释信息,谁来维权,存储结果判断等...),
continue_body是sql代码的内容.

创建存储过程:统计所有员工数量的存储过程
CREATE PROCEDURE pro1(OUT param1 int)
BEGIN
SELECT COUNT(*)INTO param1 from employee;
END;

调用存储过程
CALL pro1(@param1);
SELECT @param1

查看存储过程
SHOW PROCEDURE STATUS LIKE 'p%';
SHOW CREATE PROCEDURE pro1;

修改存储过程:
ALTER {PROCEDURE | FUNCTION}pro_name[characteristics...]语句只能改变存储过程的特征,不能修改过程的参数以及过程体。
如果想做这样的修改,必须先使用DROP PROCEDURE 删除过程,然后使用and CREATE PROCEDURE重建过程.

删除存储过程

DROP PROCEDURE IF EXISTS db_name.produce_name;(就是数据库.存储过程名字)

二:存储函数

存储函数创建基本语法

CREATE FUNCTION func_name([func_parameter])
RETURNS type

[characteristics...]continue_body

创建根据id查询员工名称

CREATE FUNCTION func_test(parma1 INT)
return varchar2
is v_name nvarchar2;
BEGIN
 select into v_name from employee where e_no=param1;
return v_name;
END;

存储函数查看

show FUNCTION STATUS LIKE 'func%'

SHOW CREATE FUNCTION mytest.func_test;

存储函数使用

select function_name(参数);

存储函数修改:

alter function function_name 

[characteristics...]

删除存储函数

DROP function IF EXISTS db_name.function_name;(就是数据库.存储函数名字)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值