知识笔记--函数

1. 函数

函数:有且仅有1个返回值,适合做处理数据后返回一个结果
存储过程:可以有0个返回值,也可以有多个返回值,适合做批量插入、批量更新
创建语法:
create FUNCTION 函数名(参数列表) returns 返回类型
BEGIN
函数体
END
注意:
1.参数列表 包含两部分
参数名,参数类型
2.函数体:肯定会有return语句,如果没有会报错
如果return语句没有放在函数体的最后也不报错,但不建议
return 值;
3.函数体中仅有一句话,则可以省略begin end
4.使用delimiter语句设置结束标记
调用语法:
# 意思是执行函数体的语句,并显示返回值
select 函数名(参数列表);

2. 案例演示

1. 无参有返回
题:返回公司的员工个数
delimiter $
create FUNCTION myf1() returns int
begin
declare c int default 0; # 定义局部变量
select count(*) into c # 赋值
from employees;
return c;
end $
select myf1() $
2.有参有返回
题:根据员工名,返回它的工资
delimiter $
create FUNCTION myf2(empName varchar(20)) returns double
begin
set @sal = 0; # 自定义用户变量
select salary into @sal # 赋值
from employees
where last_name = empName;
return @sal;
end $
select myf2('Kochhar') $
3. 根据部门名,返回该部门的平均工资
delimiter $
create FUNCTION myf3(departName varchar(20)) returns double
begin
declare c double default 0;
select avg(e.salary) into c
from employees e, departments d
where e.department_id = d.department_id
and d.department_name = departName;
return c;
end $
select myf3('IT') $

3. 查看函数

show create FUNCTION 函数名;

4. 删除函数

drop FUNCTION 函数名;

案例演示

方法1
delimiter $
create function fun3(num1 float, num2 float) returns FLOAT
BEGIN
declare result float;
set result = num1 + num2;
return result;
end $
select fun3(1, 3) $
方法2:
delimiter $
create function fun4(num1 float, num2 float) returns FLOAT
BEGIN
set @result = num1 + num2;
return @result;
end $
select fun4(1, 3) $
posted @   jsqup  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示