一、存储过程的概念
存储过程是一组为了完成特定功能的SQL语句。
存储过程再使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储再数据库服务器中。当需要使用该存储过程时,只需要调整它即可。存储过程再执行上比传统SQL速度更快、执行效率更高。
存储过程的优点
- 执行一次后,会将生成的二进制代码驻留缓冲区,提高执行效率
- SQL语句加上控制语句的集合,灵活性高
- 在服务器端存储,客户端调用时,降低网络负载
- 可多次重复被调用,可随时修改,不影响客户端调用
- 可完成所有的数据库操作,也可控制数据库的信息访问权限
二、创建简单的存储过程
创建
查看存储过程:
show create procedure 存储过程名
调用存储过程:
call proc;
三、存储过程的参数
IN 输入参数
IN 输入参数:代表调用者向过程传入值(传入值可以是字面量或变量)
OUT 输出参数
OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传输值只能是变量)
INOUT 输入输出参数
INOUT 输入输出参数:即表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)
四、删除存储过程
存储过程内容的修改方法是通过删除原有的存储过程,之后再以相同的名称创建新的存储过程。如果要修改存储过程的名称,可以先删除原存储过程,再以不同的命名创建新的存储过程。
删除命令:
drop procedure if exists 存储过程名;
if exists是判断使用,如果存在这个存储过程,那么会直接删除,如果不存在,即跳过删除,如果不添加if exists,那么如果不存在这个存储过程就会报错
五、存储过程的控制语句
条件语句
if-then-else … end if
循环语句
while … end while