什么是存储过程

一组可编程的语句,为了完成特定功能的SQL语句

存储过程就是具有名字的一段代码,用来完成一个特定的功能

创建的存储过程保存在数据库的数据字典中

存储过程的作用

将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用

批量处理

统一接口,确保数据安全

相对于oracle数据库来说,MySQL的存储过程相对功能较弱,使用较少

创建存储过程

delimiter $$
create procedure show_users()
begin
select * from users;
end$$
delimiter ;

调用存储过程

call show_users();

查看存储过程

show procedure status; // 查看所有的存储过程
show procedure status where db = 'test'; // 查看’test‘数据库的所有存储过程
show create procedure show_users; // 查看存储过程详情

删除存储过程

drop procedure show_users;

存储过程变量

delimiter $$
create procedure test()
begin
declare x, y int default 0;
set x = 2;
set y = 3;

declare avgRes double default 0;
select avg(salary) into avgRes from users;

end$$
delimiter ;