MySQL存储过程与函数的使用

一、存储过程

含义:一组预先编译好的SQL语句的集合

1.创建语法

create procedure 存储过程名(参数列表)
begin
    存储过程体(一组SQL语句)
end

参数列表包含三部分:参数模式参数名参数类型

参数模式:inoutinout

2.调用语法

call 存储过程名(实参列表);

3.删除语法

drop procedure 存储过程名;

4.示例

1) 创建

delimiter $
create procedure proc_student(in idparam int, out nameparam varchar(20))
begin
	select name into nameparam
	from student
	where id=idparam;
end $

2) 调用

set @idparam=1;
set @nameparm='';
call proc_student(@idparam, @nameparam);
select @nameparam;

3) 删除

drop procedure proc_student;

二、函数

1.创建语法

create function 函数名(参数列表) returns 返回类型
begin
    函数体
end

参数列表包含两部分:参数名参数类型

函数体:必须有return语句,否则会报错

2.调用语法

select 函数名(参数列表);

3.删除语法

drop function 函数名;

4.示例

1) 创建

如果有error 1418错误,就加上deterministic

delimiter $
create function func_sum(a int, b int) returns int deterministic
begin
	declare res int default 0;
	set res = a + b;
	return res;
end $

没有deterministic可能会报错

2) 调用

select func_sum(1,2);

3) 删除

drop function func_sum;

三、存储过程与函数的区别

存储过程:可以有0个返回,也可以有多个返回,适合批量插入,批量更新

函数:有且仅有1个返回,适合做处理数据后返回一个结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值