存储过程原理简单解析

1.什么是存储过程?

将一组预先编译好的SQL语句的集合,存放在一个特定的文件中。类似于JAVA中的方法。

2.存储过程的工作原理

将存储过程预先编译好的SQL语句集合称为集合A,里面包含SQL1、SQL2、SQL3…许多句需要在项目中使用的SQL语句。 ①当应用在调用SQL集合时可以直接调用集合A而不需要一个一个的调用SQL语句。 ②当系统在第二次调用这些SQL语句执行某些功能的时候,它会先去查看是否已经有编译过的SQL语句,当发现集合A有符合的情况时,会直接调用A。 ③假设没有存储过程,也就是SQL1、SQL2、SQL3…这几个SQL语句是相互独立的,当系统完成一个功能时需要执行这三个SQL,也就是完成某功能时要连接三次数据库服务器。所以存储过程可以将三次连接减少到一次,提高了连接效率。

3.存储过程的好处

1.提高SQL语句的重用性; 2.简化编译操作; 3.减少了编译次数,减少和数据库服务器的连接次数,提高效率;

4.存储过程的创建及使用

4.1 创建语法

# 设置结束标志
delimiter $
#创建存储过程
create procedure 存储过程名(参数模式 参数名 参数类型)
begin
	SQL1;
	SQL2;
	SQL3;
	...
end $
参数模式分为三种: IN :该参数可以作为输入,需要调用方传入参数值; OUT:该参数可以作为输出,可以作为方法的返回值; INOUT:该参数既可以作为输入,也可以作为输出;

4.2 调用语法

#调用存储过程
call 存储过程名(实参列表)$;

4.3 示例

1.检测用户是否可以成功登陆(包含用户名和密码)
#创建存储过程
delimiter $
create procedure mp4(IN username varchar(20),IN password varchar(20))
begin
	declare result INT default 0;
		select count(*) into result
		from admin 
		where admin.username=username and admin.password=password;
	select if(result>0,成功,失败);
end $
#调用存储过程
call mp4(john,1234)$
经验分享 程序员 微信小程序 职场和发展