02-016 MySQL_基础_函数

概述

存储过程和函数类似于Java中的方法,方法会封装,隐藏实现细节。
优点
提高代码重用性;
简化操作;
减少编译次数,减少连接数据库的次数;
存储过程与函数的区别
存储过程:可以有0个返回,也可以有多个返回,适合批量插入,批量更新。
函数:有且仅有一个返回,适合用于处理数据后返回一个结果。

函数创建

create function 函数名 (参数列表)returns 返回类型
begin
函数体
end
注意:
①参数列表包含两部分 :参数名、参数类型
②函数体肯定有return 语句,如果没有会报错
如果return语句没有在函数体最后也不报错,但不建议
③函数体中只有一句话可以省略begin end
④使用delimiter 语句设置结束标志

调用

select 函数名(参数列表);

=============================================================
delimiter $
1.无参有返回

create function myf1() returns int
begin
	declare c int default 0;
	select count(*) into c
	from rmployees;
	return c;
end $
select myf1() $

2.有参有返回
根据员工名返回工资

create function myf2(empName varchar(20) returns double
begin
	set @sal = 0;#定义用户变量
	select salary into @sal
	from employees
	where last_name = empName limit 1;
	return @sal;
end $
select myf2('k_ing')$

根据部门名返回平均工资

create function myf3(deptName varchar(20)) returns double
begin
	declare sal double;
	select avg(salary) into sal
	from employees  e
	join departments d on e.department_id = d.department_id
	where d.department_name = deptName;
	return sal;
end $
select myf3('HR')$

查看

show create function 函数名;
mysql库proc可以查看所有函数、存储过程的详细信息

删除

drop function 函数名;

学习整理于MySQL 基础+高级篇.

发布了53 篇原创文章 · 获赞 0 · 访问量 387

猜你喜欢

转载自blog.csdn.net/weixin_40778497/article/details/103643593