存储过程原理简单解析
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)$
