存储函数是有返回值的存储过程,存储函数的参数只能是IN类型的。具体语法如下:
CREATE FUNCTION 存储函数名称([参数列表])
RETURNS type [characteristic ...]
BFGIN
--SQL语句
RETURN ...;
END ;
characteristic说明:
- DETERMINISTIC:相同的输入参数总是产生相同的结果;
- NO SQL:不包含SQL语句;
- READS SQL DATA:包含读取数据的语句,但不包含写入数据的语句。
例:定义存储函数,完成如下需求:
1.计算从1累加到n的值,n为传入的参数值。
create function fun(n int)
returns int deterministic
begin
declare total int default 0;
while n>0 do
set total := total + n;
set n := n - 1;
end while;
return total;
end;
select fun(100);