一、存储过程:
将能够完成特定功能的SQL指令进行封装(SQL指令集),编译之后存储在数据库服务器上,并且为之取一个名字,客户端可以通过名字直接调用这个SQL指令集,获取执行结果。
二、存储过程的优点
·1、SQL指令无需客户端编写,通过网络传送,可以节省网络开销,同时避免SQL指令在网络传输过程中被恶意篡改,保证安全性。
2、存储过程经过编译创建并保存在数据库中的,执行过程无需重复进行编译操作,对SQL指令的执行过程进行了性能提升。
3、存储过程中多个SQL指令之间存在逻辑关系,支持流程控制语句(分支、循环)可以实现更为复杂的业务。
三、存储过程的缺点
1、存储过程是根据不同的数据库进行编译、创建并存储在数据库中,当我们需要切换到其他的数据库产品时,需要重新编写针对于新数据库的存储过程。
2、存储过程受限于数据库产品,如果需要高性能的优化会成为一个问题。
3、在互联网项目中,如果需要数据库的高并发访问,使用存储过程会增加数据库的连接执行时间(因为我们将复杂的业务交给了数据库进行处理)。
四、存储过程调用
1、创建存储过程
语法:
create procedure <存储过程名>(输入参数,输出参数)
begin
sql语句;
end;
示例:
//创建一个存储过程实现加法运算
create procedure pro_name(in a int,in b int,out c int)
begin
set c=a+b;
end;
2、调用存储过程
定义变量@m
set @m=0;
调用存储过程,将a的值和b的值传给c,将c传给@m
call pro_name(3,2,@m);
显示刚刚计算结果
select @m