MySQL字定义函数是对sql代码集的封装,我将分享有参数与没有参数的自定义函数的使用
studentinfo表数据:
自定义函数的创建、调用、删除
语法
无参数的自定义函数
# 无参数自定义函数
DELIMITER $
CREATE FUNCTION fun1()
RETURNS INT # 定义返回值类型
BEGIN # 函数开始
DECLARE ct_men INT DEFAULT 0; # 声明返回值
SELECT COUNT(gender) INTO ct_men FROM studentinfo WHERE gender='男';
RETURN ct_men; # 返回值
END$
DELIMITER ;
# 调用函数
SELECT fun1();
有参数的自定义函数
# 摄氏度转换为华氏度的函数
DELIMITER $
CREATE FUNCTION fun2(s INT)
RETURNS VARCHAR(50) # 定义返回值类型
BEGIN # 函数开始
DECLARE h VARCHAR(50) DEFAULT ''; # 声明变量
SET h = CONCAT(32+s*1.8,' C'); # 拼接
RETURN h; # 返回值
END$
DELIMITER ;
# 调用
SELECT fun2(1)
删除自定义函数
DROP FUNCTION fun1;
总结:自定义函数与存储过程非常相似,很多情况下他们的功能都是一样的,里面的代码集的语法都是相同的。有些MySQL管理工具里面存储过程包括存储函数。区别就在于存储过程创建与删除的关键字是procedure,可以有返回值也可以没有,而自定义函数的创建与删除的关键字是function,有且只有一个返回值。
打卡第15天,欢迎对数据库感兴趣的朋友一起讨论、交流,请多指教!