存储过程是一组可以完成特定功能的SQL语句集合,它可以将常用或复杂操作封装成一个代码块存储在数据库服务器中,以便重复使用,大大减少数据库开发人员的工作量。
1. 创建存储过程
基本语法:
CREATE PROCEDURE pro_name([[IN | OUT | INOUT ] 参数名称 参数类型]) [characteristic ... ] routine_body
MySQL默认的语句结束符号为分号(;),而在创建存储过程时,存储过程体可能包含多条SQL语句,所以为避免分号与存储过程中SQL语句的结束符相冲突,需要使用DELIMITER改变存储过程的结束符。存储过程定义完毕后再恢复默认结束符。
mysql> DELIMITER //
2. 查看存储过程
存储过程创建之后,可以使用SHOW PROCEDURE STATUS语句和SHOW CREATE PROCEDURE语句分别显示存储过程的状态信息和创建信息,也可以在数据库information_schema的Routines数据表中查询。
mysql> SHOW PROCEDURE STATUS [LIKE 'pattern'];
mysql> SHOW CREATE PROCEDURE pro_name;
3. 调用存储过程
基本语法:
mysql> CALL [dbname.]pro_name([实参列表]);
4. 修改存储过程
基本语法:
mysql> ALTER PROCEDURE pro_name[characteristic ... ];
只能修改存储过程的特征值,不能修改存储过程的参数
5. 删除存储过程
基本语法:
mysql> DROP PROCEDURE [IF EXISTS] pro_name;