存储过程的介绍
- 存储过程是SQL语句和流程控制语句的预编集合,并以一个名称存储并作为一个单元进行处理
- 单一的存储过程效率比单一的SQL语句高,因为存储过程进行了预编译,而SQL语句要进行语法分析
变量的应用
MySQL存储过程中的参数主要有局部参数和会话参数两种,这两种又可以被称为局部变量和会话变量。局部变量只在定义该局部变量的begin…end范围内有效,会话变量在整个存储过程范围内均有效
局部变量
- 局部变量以关键字DECLARE声明,后跟变量名和变量类型
DECLARE var_name [, varname2, varname3 …] date_type [DEFAULT value];
例:DECARE num INT DEFAULE 10;
在该例中,分别在内层和外层BEGIN…END块中都定义同名的变量x,按照语句从上到下执行的顺序,如果变量x在整个程序中都有效,则最终结果应该都为inner,但真正的输出结果却不同,这说明在内部BEGIN…END块中定义的变量只在该块内有效
全局变量/会话变量
- MySQL中的会话变量不必声明既可以使用,会话变量在整个过程中有效,会话变量名以字符“&