MySQL--函数的创建、使用、查看和删除
函数的作用跟存储过程类似,能够提高代码的复用性,简化操作,提高效率。两者也有一定的区别:
存储过程可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
函数有且仅有一个返回,适合做数据处理后返回一个结果
语法:create function 函数名(参数列表) returns 返回类型
begin
函数体
end
注意:
1、参数列表包含两部分:参数名和参数类型
2、函数体:肯定会有return语句,如果没有会报错,如果return语句没有放在函数体的最后也不会报错,但不建议
3、函数体中仅有一句话,则可以省略begin end
4、使用delimiter语句设置结束语句
语法:select 函数名(参数列表)
返回明星表的个数
DELIMITER $
CREATE FUNCTION myfunc1() RETURNS INT
DETERMINISTIC
BEGIN
DECLARE result INT DEFAULT 0;
SELECT COUNT(*) INTO result
FROM superstars;
RETURN result;
END $
SELECT myfunc1()$
根据明星名,返回他的工资
DELIMITER $
CREATE FUNCTION myfunc2(starname VARCHAR(20)) RETURNS DECIMAL
BEGIN
SET @sal=0; # 定义用户变量
SELECT salary INTO @sal
FROM superstars
WHERE sname = starname;
RETURN @sal;
END $
SELECT myfunc2('刘亦菲')$
SHOW CREATE FUNCTION myfunc1;
四、删除函数
DROP FUNCTION myfunc1;