一、存储过程
存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定的存储过程的名字、并给出相关参数来执行它。
二、优点:
1、较快的执行速度。如果某一操作包含大量的SQL语句或者分别被多次执行,那么存储过程比批处理的执行速度要快。因为存储过程是预编译的,在初次执行时,优化器对其进行分析优化,以后执行就不需要再次编译了。而批处理每次都需要编译和分析。
2、减少网络流量。调用存储过程,传输的仅仅是调用语句。
3、增强了SQL语言的功能和灵活,存储过程可以用流控制语句编写,有很强的灵活性,可以完成比较复杂的运算。
三、创建:
1、MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]]) 过程体
2、这里先举个例子:
mysql> DELIMITER //
mysql> CREATE PROCEDURE proc1(OUT s int)
-> BEGIN
-> SELECT COUNT(*) INTO s FROM user;
-> END
-> //
注:
(1)DELIMITER //是分割符的意思,
(2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。
(3)过程体的开始与结束使用BEGIN与END进行标识。
(4) 声明分割符
其实,关于声明分割符,上面的注解已经写得很清楚,不需要多说,只是稍微要注意一点的是:如果是用MySQL的Administrator管理工具时,可以直接创建,不再需要声明。
(5) 参数
MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:
CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])
IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
OUT 输出参数:该值可在存储过程内部被改变,并可返回
INOUT 输入输出参数:调用时指定,并且可被改变和返回
四、调用:
用call和你过程名以及一个括号,括号里面根据需要,加入参数,参数包括输入参数、输出参数、输入输出参数。
五、修改、删除
ALTER PROCEDURE 存储过程名
DROP PROCEDURE 存储过程名
MYSQL存储过程一
猜你喜欢
转载自rixin1980.iteye.com/blog/1867543
今日推荐
周排行