含义:一组预先编译好的SQL语句的集合,理解成批处理语句
1、提高代码的重用性
2、简化操作
3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
一、创建
create function 函数名(参数名 参数类型) returns 返回类型
begin
函数体
end
注意:
① 函数体中肯定需要有return语句
② 函数体中仅有一句话,则可以省略begin end
③ 使用 delimiter语句设置结束标记
二、调用
select 函数名(实参列表);
1.无参有返回
例:返回employees表中公司的员工个数
--创建函数
CREATE FUNCTION myf1() RETURNS INT
BEGIN
DECLARE c INT DEFAULT 0;--定义局部变量
SELECT COUNT(*) INTO c --赋值
FROM employees;
RETURN c;
END $
--调用
SELECT myf1()$
2.有参有返回
例:创建函数,实现传入两个float,返回二者之和
--创建函数
CREATE FUNCTION test_fun1(num1 FLOAT,num2 FLOAT) RETURNS FLOAT
BEGIN
DECLARE SUM FLOAT DEFAULT 0;
SET SUM=num1+num2;
RETURN SUM;
END $
--调用
SELECT test_fun1(1,2)$
三、查看
show create function 函数名;
四、删除
drop function 函数名;
函数与存储过程的区别:
存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
函数:有且仅有1 个返回,适合做处理数据后返回一个结果