存储过程通常有如下优点:
1. 封装性 存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的 SQL 语句,并且数 据库专业人员可以随时对存储过程进行修改,而不会影响到调用它的应用程序源代码。
2. 可增强 SQL 语句的功能和灵活性 存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的 判断和较复杂的运算。
3. 可减少网络流量 由于存储过程是在服务器端运行的,且执行速度快,因此当客户计算机上调用该存储过 程时,网络中传送的只是该调用语句,从而可降低网络负载。
4. 高性能 存储过程执行一次后,产生的二进制代码就驻留在缓冲区,在以后的调用中,只需要从缓冲区中 执行二进制代码即可,从而提高了系统的效率和性能。
5. 提高数据库的安全性和数据的完整性 使用存储过程可以完成所有数据库操作,并且可以通过编程的方式 控制数据库信息访问的权限。
MySQL 存储过程是一些 SQL 语句的集合,比如有的时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中还需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程。下面我们来介绍一下 如何创建一个存储过程。 基本语法 可以使用 CREATE PROCEDURE 语句创建存储过程。
DELIMITER $$
语法说明如下: $$ 是用户定义的结束符,通常这个符号可以是一些特殊的符号,如两个“?”或两个“¥”等。 当 使用 DELIMITER 命令时,应该避免使用反斜杠“\”字符,因为它是 MySQL 的转义字符。
成功执行这条 SQL 语句后,任何命令、语句或程序的结束标志就换为两个问号“??”了。
若希望换回默认的分号“;”作为结束标志,则在 MySQL 命令行客户端输入下列语句即可:
delimiter ;
注意:delimiter 和分号“;”之间一定要有一个空格
这里我们创建了个简单的存储名叫qq,当我们执行qq这个存储就会给test1这个表里差三个数据。
创建存储过程 qq 后,通过 CALL 语句调用该存储过程的 SQL 语句和执行结果如下所示。
基本语法就是这样
DELIMITER //
CREATE PROCEDURE 创建的存储名字()
BEGIN
你要执行的操作
END //
创建带参数的存储过程
IN OUT INOUT 括号可以带这些参数
查看所以存储
show procedure status\G
查看存储相关信息
show create procedure 存储名\G
在实际开发过程中,业务需求修改的情况时有发生,这样,不可避免的需要修改 MySQL 中存储过程的特征 。 基本语法 可以使用 ALTER PROCEDURE 语句修改存储过程的某些特征。
ALTER PROCEDURE <过程名> [ <特征> … ]
提示:这个语法用于修改存储过程的某些特征,如要修改存储过程的内容,可以先删除该存储过程,再 重新创建。
MySQL删除存储过程(DROP PROCEDURE)
DROP { PROCEDURE | FUNCTION } [ IF EXISTS ] <过程名>