函数
存储过程:可以返回有0个值 也可以有多个返回,适合做批量插入 批量更新
函数:有且仅有1个返回 适合做处理数据后返回一个结果
一、创建语法
CREATE FUNCTION 函数名(参数列表 )RETURNS 返回类型
BEGIN
函数体
END
注意:
1.参数列表 包含两部分:
参数名 参数类型
2.函数体:肯定会有return语句 如果没有会报错
如果return语句没有放在函数体的最后也不会报错 但不建议
return 值;
3.函数体中只有一句 则可以省略begin end
4.使用DELIMITER语句设置结束标记 DELIMITER $
二、调用语法
SELECT 函数名(参数列表)
案列演示
1、无参 有返回
返回公司员工个数
CREATE FUNCTIONmyF1() RETURNS INT
BEGIN
DECLARE c INT DEFAULT 0; # 定义局部变量并指定默认值
SELECT count(*) INTO c # 赋值
FROM employee;
RETURN c;
END $
SELECT myF1() $
2、有参有返回
案例:根据员工名返回工资
CREATE FUNCTION myF2(empName VARCHAR(20)) RETURNS DOUBLE
BEGIN
SET @sal =0;#定义用户变量
SELECT salary INTO @sal #赋值
FROM employee
WHERE last_name = empNAme
RETURN @sal;
END $
SELECT myF2('king') $
3、根据部门名,返回该部门的平均工资
CREATE FUNCTION my3(deptName VARCHAR(20)) RETURNS DOUBLE
BEGIN
DECLARE sal DOUBLE;
SELECT AVG (salary) INTO sal;
FROM emplocyees e
JOIN department d ON e.department_id = d.department_id
WHERE d.department_name=department;
return sal;
END $
SELECT my3('IT')$
三、查看函数
SHOW CREATE FUNCTION myF3; #(函数名)
四、删除函数
DROP FUNCTION myF3; #(函数名)