MySQL函数--(1)

时间:2022-01-10 06:16:37

/*
函数与存储过程的区别
1、存储过程:可以有0个返回值,可以有多个返回值
函数:有且仅有一个返回值
*/

#创建语法
create FUNCTION 函数名(参数列表) return 返回类型
BEGIN
函数体
END

/*
注意:
1、参数列表:参数名,参数类型
2、函数体:一定有return语句,没有会报错
return语句没有放在最后不报错,不建议这样写

return值
函数体仅有一句话,可省略begin,end
使用delimiter设置结束标志

调用语法
select 函数名(参数列表)
*/

例1:

/*查询学生人数*/
#不需要delimiter设置结束符
create FUNCTION stunum() RETURNS INT
begin
DECLARE c int DEFAULT 0;
select count(*) into c
from student;
return c;
END

#调用函数
select stunum()

例2:

/*查询学号返回姓名*/
#不需要delimiter设置结束符
#有参有返回
create FUNCTION stuname(sno int) RETURNS varchar(16)
begin
set @aname='';  #变量初始化
select student.sname into @aname
from student where student.sno=20162002;

return @aname;
END

#调用函数
select stuname(20162002)

例3:

查看存储过程及函数

查看函数:
show create function stunum;
查看存储过程:
show create procedure info;

删除存储过程及函数

删除函数:
drop function stunum;
删除存储过程:
drop procedure info;