一、存储过程的创建和调用
什么是存储过程
一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程就是具有名字的一段代码,用来完成一个特定的功能。创建的存储过程保存在数据库的数据字典中。
为什么要用存储过程:
将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用
批量处理
统一接口,确保数据的安全
相对于oracle数据库来说,MySQL的存储过程相对功能较弱,使用较少。
创建存储过程:
(DELIMITER语句将标准分隔符 - 分号(;)更改为:$$),防止多条语句,各自执行。因为存储过程是一个整体。
告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。使用delimiter $$,这样只有当$$出现之后,mysql解释器才会执行这段语句。
DELIMITER $$
CREATE PROCEDURE 名称()
BEGIN
语句
END $$
DELIMITER ;
调用存储过程:call 名称();
先修改 成$$ ,之后再修改成 “;” 即可 如下图:
二、查看存储过程
查看所有存储过程:SHOW PROCEDURE STATUS;
查看指定数据库中的存储过程:SHOW PROCEDURE STATUS WHERE db = '数据库名称';
查看指定存储过程源代码:SHOW CREATE PROCEDURE 存储过程名
三、删除存储过程
删除存储过程:drop procedure 名称