一文入门SQL——自定义函数
本篇讲的是自定义函数(Function)。
当我们学习编程语言的时候,也会遇到函数。函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。
SQL 中的函数一般是在数据上执行的,可以很方便地转换和处理数据。一般来说,当我们从数据表中检索出数据之后,就可以进一步对这些数据进行操作,得到更有意义的结果,比如返回指定条件的函数,或者求某个字段的平均值等。
SQL中的函数包含内置函数和自定义函数,本文讲解自定义函数。
用户定义函数与编程语言中的函数相似,其结构与存储过程相似,但函数必须有一个RETURN子句,用于返回函数值。函数说明要说明函数名、结果值的类型,以及参数类型等。
注意:以下全部是以MySQL为演示,其他类型数据库语法可能不一致。
一、创建自定义函数
(1)创建计算立方体体积的标量函数,此函数有三个输入参数,分别为正方体的长宽高,类型均为整型,返回值体积也是整型:
#解决1418号报错(临时生效,重启后失效)
set global log_bin_trust_function_creators=TRUE;
#定义标量函数
delimiter $$
CREATE FUNCTION CubicVolume
(CubeLength int,CubeWidth int,CubeHeight int)
RETURNS int
RETURN (CubeLength*CubeWidth*CubeHeight);
$$ delimiter;


#定义标量函数
delimiter $$
CREATE FUNCTION GoodsCount(class varchar(10))
RETURNS int
BEGIN
DECLARE x int;
SET x=(
SELECT count(*)
FROM Tbl_GoodsClass a JOIN Tbl_Goods b ON a.GoodsClassID=b.GoodsClassID
WHERE GoodsClassName=class);
RETURN x;
END;
$$ delimiter;
SELECT CubicVolume(2,3,4) ;

#查询运动器材的种类数
SELECT GoodsCount('运动器材');
删除GoodsCount函数的语句如下:
这样就把创建好的函数给删除了。
文中有个小点需要注意一下,直接运行自定义函数将会出现1418错误,这个我们可以通过运行
或者
来解决,不过这个是临时生效,重启应用后失效,更详细的解决方案可访问https://blog.csdn.net/qq_38361800/article/details/105950335来解决。