函数
含义:一组预先编译好的SQL语句的集合,可以理解成批处理语句
好处:1、提高代码的重用性 2、简化操作 3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
函数和存储过程的区别:
存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
函数:有且仅有1个返回,适合做处理数据后返回一个结果
一、创建语法
create function 函数名(参数列表) returns 返回类型
begin
函数体
end;
注意:
1、参数列表包含两部分:参数名 参数类型
2、函数体:肯定会有return语句,如果没有会报错。如果return语句没有放在函数体的最后也不会报错,但不建议
return 值;
3、函数体中仅有一句话,则可以省略begin and
二、调用语法
select 函数名(参数列表)
(1)、无参有返回
例如:返回公司的员工个数
create function myf1() returns int BEGIN declare c int default 0; select count(*) into c from employee; return c; end;
调用
select myf1();
(2)、有参有返回
例如:根据员工名,返回对应的工资
create function myf2(ename varchar(55)) returns int BEGIN set @pay=0; select e.pay into @pay from employee e where e.ename=ename; return @pay; end;
调用
select myf2('老王');
三、查看函数
语法:show create function 函数名;
例如:
show create function myf2;
四、删除函数
语法:drop function myf2;
例如:
drop function myf1;