函数

本文详细解析了SQL函数与存储过程的区别,强调了函数在处理数据并返回单一结果方面的优势,通过三个实例展示了如何创建及调用SQL函数,包括计数、获取员工薪资和部门平均薪资。

函数:一组预先编译好的SQL语句的集合,相当于批处理语句。
函数和存储过程的区别:存储过程可以有0个返回,也可以有多个返回,适合做批量插入、批量更新;函数有且仅有1个返回,适合处理数据后返回一个结果。
函数优点:
1、提高代码的重要性。
2、简化操作。
3、减少了编译次数并且减少了和数据服务器的连接次数,提高了效率。
创建函数模板

DELIMITER $
create FUNCTION 函数名(参数列表) RETURNS 返回类型
BEGIN
	函数体
END $;

函数调用方式和存储过程调用方式不一样,函数调用直接用select。

函数样例1:

DELIMITER $
create FUNCTION mycount() RETURNS INT
BEGIN
	DECLARE c INT DEFAULT 0;
	select count(*) INTO c from employees;
	RETURN c;
END $;

--调用
select mycount();

函数样例2:

DELIMITER $
create FUNCTION myf2(ename VARCHAR(32)) RETURNS DOUBLE
BEGIN
	DECLARE c DOUBLE DEFAULT 0;
	select salary INTO c from employees where last_name=ename;
	RETURN c;
END $;

--调用
select myf2('Hunold')

函数样例3:

DELIMITER $
create FUNCTION myf3(ename VARCHAR(32)) RETURNS DOUBLE
BEGIN
	DECLARE c DOUBLE DEFAULT 0;
	select AVG(b.salary) INTO c from departments a INNER JOIN employees b on a.department_id=b.department_id where a.department_name=ename;
	RETURN c;
END $;

select myf3('Adm')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值