存储函数是有返回值的存储过程,存储函数的参数只能是IN类型的。

一、语法。

1、基本语法

create function 存储函数名称 [(参数列表)]
returns type [characteristic...]
begin
  --sql语句
  return ...;

end;

2、characteristic说明

deterministic:相同的输入参数总是产生相同的结果
no SQL:不包含SQL语句
reads SQL data:包含读取数据的语句,但不包含写入数据的语句

二、案例。

计算从1累加到n的值,n为传入的参数值。

create function fun1()
returns int deterministic
begin
  declare total int default 0;
  
  while n > 0 do
    set total := total + n;#对total进行累加,再副职给total
    set n := n - 1;#每一次循环,将n的值减1
  end while;

  return total;#返回
end;

select fun1(100);