关于sql函数

函数

优点:1、提高代码重用

2、简化操作

3、减少编译次数

4、减少了数据库服务器的连接次数提高效率

函数与存储过程的区别

存储过程:可以有返回值,也可以没有返回值,按照业务需求来定,适合批量插入,适合批量跟新,更多时候用在增删改

函数:有且只有一个返回值,适合处理完成后返回一个结果
函数的格式

CREATE FUNCTION 函数名(参数名 参数类型) RETURNS FLOAT

CREATE FUNCTION 函数名(参数列表) RETURNS 返回值类型
BEGIN

	函数体;

END


注意点:
1、参数列表:参数名 参数类型
2、函数肯定要有返回值,返回值只有一个
3、函数的参数可以不写

实例:

# 函数
CREATE FUNCTION f1(参数列表) RETURNS 返回值类型
BEGIN

END

# 查询goods表中有多少条数据,将结果返回

DELIMITER $

CREATE FUNCTION f1() RETURNS INT

BEGIN
	DECLARE a INT;
	SELECT COUNT(*) INTO a FROM goods;
	RETURN a;

END

SELECT f1()


根据传入的种类id,返回对应的商品名字
DELIMITER $
CREATE FUNCTION f2(cateid INT) RETURNS VARCHAR(100)
BEGIN
	DECLARE a VARCHAR(200);
	SELECT goods.name INTO a FROM goods WHERE goods.cate_id=cateid;
	RETURN a;

END 

SELECT f2(37);
SELECT f2(2)


SELECT goods.name FROM goods WHERE goods.cate_id=2;


# 根据品牌名称,返回对应的商品的均价
DELIMITER $
CREATE FUNCTION f3(brandename VARCHAR(20)) RETURNS FLOAT
BEGIN

DECLARE avg_price FLOAT;
SELECT AVG(goods.price) INTO avg_price
FROM 
goods INNER JOIN brand 
ON goods.`brande_id`=brand.`id`
WHERE brand.`brandename`=brandename;

RETURN avg_price;

END

SELECT f3('IT教育视频')

SELECT f3('大润发')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值