mysql 函数语法
create function 函数名(参数名 参数类型,。。。)
returns type —返回值类型 ----returns 有个 s
[characteristics…]
begin
函数体 ### 函数体中肯定有 return 语句
end
参数列表
指定参数为 IN | out | INOUT 只对存储过程合法,生效,FUNCTION 中总是 默认 为 IN 参数
returns type
语句表示函数返回数据的类型,RETURNS 子句中只能对FUNCION 做指定,对函数而言 这是强制的,它用来指定函数的返回类型,而且函数体必须包含一个 Return value 语句
创建函数
delimiter $
create function fn()
returns varchar(40)
deterministric
contains sql
reads sql data
begin
return (select stu_name from student where stu_id=1002);
end $
delimiter ;
select fn();
函数的调用
select 函数名(实参列表)
创建函数 带参数
-- 创建函数前执行此函数,保证函数会执行成功
set global log_bin_trust_function_creators=1
delimiter $
create function fn(stu_id int)
returns varchar(40)
begin
return (select stu_name from student where stu_id=stu_id );
end $
delimiter ;
---- 调用
select fn(1002);
或
set @stu_id=1002 --- set @stu_id:=1002
select fn(@stu_id);