函数与存储过程的区别:
存储过程:可以有0个返回,也可以有多个返回,适合做批量插入,批量更新
函数:有且仅有一个返回,适合做数据处理后返回一个结果
创建语法:
create function 函数名(参数列表) returns 返回类型
begin
函数体
end
注意:
参数列表包含两部分:参数名 参数类型
函数体会有return语句,如果没有会报错
如果return语句没有放在函数体的最后也不会报错,但不建议
return值;
函数体中仅有一句话,则可以省略begin end
使用delimiter语句作为设置结束标记
二、调用语法
select 函数名(参数列表)
案例演示:
1、无参数有返回
返回公司的员工个数
create function myf1() returns int
begin
declare c int default 0;自定义变量、局部变量
select count(*) into c 赋值
from employees;
return c;
end $
select myf1()$
2、有参有返回
根据员工名,返回它的工资
create function myf2(empname varchar(20)) return double
begin
set @sal = 0;定义用户变量
select salary into @sal 赋值
from employees
where last_name = empname;
return @sal;
end $
select myf2(‘‘) $
三、查看函数
show create function myf3;
四、删除函数
drop function myf3;