mysql的函数和存储过程
共同点:
- 都是一组sql语句集合
- 提高代码复用性
- 简化操作
- 减少编译次数,并减少了和数据库服务器的连接次数
区别:
存储过程可以有0个返回或者多个返回,适合批量插入和更新
函数:有且仅有一个返回,适合做完数据处理后返回一个结果
函数语法说明
create function funcname(params) returns return_type
begin
func_detail;
end
ps:
1. params包含两个部分:参数名 参数类型
2. 函数体必须包含return 语句
3. delimiter语句设置结束标记
函数调用说明
select funcname(params)
案例
返回table1的记录数
create function myf1() returns int
begin
declare c int default 0;
select count(*) into c
from table1;
return c;
end $
select myf1() $
根据name返回age
create function myf2(uname varchar(20)) returns int
begin
set @age=0;
select age into @age
from table1 where name=uname;
return @age;
end $
select myf2("a2") $
查看函数
show create function myf2;
删除函数
drop function myf2;