存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化开发人员的工作量,减少数据在数据库和应用服务器之间的传输,对提高数据处理效率有好处。存储过程和函数的区别在于函数必须有返回值,而存储过程没有;存储过程可以使用IN、OUT和INOUT类型,而函数的参数只能使用IN类型。
创建、修改、删除存储过程或函数


调用存储过程的语法如下:

Mysql的存储过程和函数允许提交和回滚,但是不允许执行Load data infile语句。如下创建存储过程的实例:


存储过程的调用和直接执行SQL的功能是相同的,但是存储过程的好处是逻辑分装在数据库端,调用者不需要了解其中的逻辑,一旦处理逻辑发生改变,只需要修改存储过程即可。
下面对characteristic进行说明:
- LANGUAGE SQL:说明下面过程是使用SQL语言编写,系统默认。
- [NOT]DETERMINISTIC:DETERMINISTIC确定的,即每次输入一样输出也一样。[NOT]DETERMINISTIC:非确定的。
- {CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}:CONTAINS SQL:表示子程序不包含读写数据的语句;NO SQL:表示子程序不包含SQL语句;READS SQL DATA:表示子程序包含读数据的语句;MODIFIES SQL DATA:表示子程序包含写数据的语句。默认是CONTAINS SQL。
- SQLSECURITY{DEFINER|INVOKER}:用来指定子程序该使用创建子程序的许可来执行,还是使用调用者的许可来执行。默认是DEFINER。
- COMMENT ‘STIRNG‘:存储过程或函数的注释。
删除存储过程和函数的具体语法:

存储过程和函数
原文:http://www.cnblogs.com/wxgblogs/p/5744476.html