一、函数
一组预先编译好的sql语句的集合,可以理解为批处理语句
优点:
提高代码的重用性
简化操作
减少了编译次数并且减少了和数据库服务器的连接次数,提高效率
区别:
存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
函数:有且仅有1个返回,适合做处理数据后返回一个结果
语法:
create function 函数名(参数列表) returns 返回类型
begin
函数体
end
注意:
1、参数列表包含参数名、参数类型
2、函数体:如果没有returns语句一定会报错,虽然returns不放在函数体最后也不会报错,但是没有意义,不建议这样写
3、函数体仅有一句话,则可以省略begin end
4、使用delimiter语句设置结束标记
 
二、调用语法
select 函数名(参数列表);
-- 1、无参有返回
-- 案例:返回公司的员工个数
delimiter $
create function hs1() returns int
begin 
declare ct int default 0; # 定义变量
select count(*) into ct  # 赋值
from employees; 
return ct;  # 返回变量值
end $

-- 调用
select  hs1();

-- 2、有参有返回
-- 案例1:根据员工名返回工资
delimiter $
create function hs2(name varchar(20)) returns double
begin
set @ne=0;
select salary into @ne from employees where last_name=name;
return @ne;
end $
select salary from employees where last_name='K_ing';

-- 注意:如果最终查询结果有2个值,则会返回空
select hs2('Kochhar');

-- 案例2:根据部门号返回该部门的平均工资
delimiter $
create function hs3(bmid int) returns double
begin
declare sy double default 00.00;
select avg(salary) into sy from employees where department_id=bmid;
return sy;
end $

-- 调用
select hs3(60) as avg_salary;

 

 
三、查看函数
show create function 函数名;
 
四、删除函数
drop function 函数名;
 
 
 
posted on 2022-07-17 22:16  时光以北暮南城  阅读(25)  评论(0编辑  收藏  举报