定义:是一组为了完成特定功能的sql语句集。目的是将常用或复杂的工作预先编译为sql语句,并用指定的名称储存起来,这个过程经编译和优化后储存在数据库服务器中,所以称为储存过程。
1.查看数据库中的储存过程
show procedure status;(不可以看到存储过程的内部代码)
select * from mysql.proc;
select * from mysql.proc where db="databaseName";
select name from mysql.proc;(只查看储存过程的名字)
2.删除数据库中的储存过程
drop procedure procedureName;
3.创建储存过程
delimiter // --使用\s可以看到数据库中默认并且在使用的结束符号为什么,在这里是转换
create procedure procedureName([in/out/inout] 参数 type[数据库中的数据类型])
begin
------储存过程的方法体,
------1.储存过程中可以有sql语句
------2.in是是可以传参数进去,但是不能传参数出来。
-----3.out是可以从里面把参数传出来(并改变外部相应局部变量),不能从外面传进去。
-----4.既可以将参数传进去,也可以将参数从里面传出来(并改变外部相应局部变量)。
end
//
delimiter ;
(为了方便在数据库中对sql对操作将结束标识符转换回来)
4.储存过程的调用
call procedureName(参数);