MySQL存储过程

页面导航:首页 > 数据库 > Mysql > MySQL存储过程

MySQL存储过程

来源: 作者: 时间:2016-02-03 08:56 【

1、什么是存储过程? 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果

1、什么是存储过程?

存储过程(Stored Procedure)是在大型系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。就本质而言,触发器也是一种存储过程。存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。

触发器是一种特殊类型的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如Update、 Insert、 Delete 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。

2、参数类型

参数 :MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:
CREATE PROCEDURE 过程名([[IN |OUT |INOUT ] 参数名 数据类形...])
(1)IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值;
(2)OUT 输出参数:该值可在存储过程内部被改变,并可返回;

(3)INOUT 输入输出参数:调用时指定,并且可被改变和返回。

3、存储过程的操作

(1)CREATE PROCEDURE(创建)
由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数。要指定为其它参数,可在参数名之前使用关键词 OUT或INOUT。
\
(2)DROP PROCEDURE (删除)
这个语句被用来移除一个存储程序。不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程。
\
(3)CALL语句(存储过程的调用)
CALL语句调用一个先前用CREATE PROCEDURE创建的程序。
CALL语句可以用声明为OUT或的INOUT参数的参数给它的调用者传回值。
存储过程名称后面必须加括号,哪怕该存储过程没有参数传递。
\
(4)SHOW CREATE PROCEDURE(类似于SHOW CREATE TABLE,查看一个已存在的存储过程)
\

(5)BEGIN ... END(复合语句)

\

(6) DECLARE语句(用来声明局部变量)
DECLARE语句被用来把不同项目局域到一个子程序:局部变量。DECLARE仅被用在BEGIN ... END复合语句里,并且必须在复合语句的开头,在任何其它语句之前。<喎"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjxicj4KPGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20131202/20131130102253093.png" alt="n峨n絣逗'1 薻x疀-畨 誑(D糙铻閲^?嘩.+n絒1,Dr觎⒐跈鄶E#鋖zW湺薢甸灋蛛HB 2 L骐劂5何html
【2】游标:http://crocodile.iteye.com/blog/1467189
【3】样例:http://www.linuxidc.com//2012-12/75228.htm
Tags:

文章评论


<