到底什么是存储过程,又为什么需要使用存储过程?
存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合,可将其视为批文件,虽然它们的作用不仅限与批处理。
使用存储过程有3个主要的好处,即简单,安全,高性能,其实和调用函数差不多,只提供了输入和输出,内部的实现完全封装了起来。
创建一个没有输入参数,也没有输出参数的存储过程,过程本身仅是一个简单的sql语句,
这里之所以没有在命令行交互程序里创建,是因为交互程序默认视;为一条sql语句的结束符,这样的话,存储过程的创建就会出错,
因此需要使用delimiter //来临时修改程序的语句分隔符,同时,创建完存储过程后,需要使用delimiter ;再修改回来,其中//也可以换成其它字符
带输出参数的存储过程
这里需要补充一下,关键字out指出相应的参数用来从存储过程中传出一个值,MySQL支持in(传递给存储过程),out(从存储过程传出)和inout(对存储过程传入和传出)类型的参数
存储过程的代码位于begin和end之间,select语句用来检索值,然后保存到相应的变量(通过指定into关键字)
所有mysql变量都必须以@k开始
注意,mysql处理语句的时候是忽略空格的,上面这样写,是为了sql语句的易读,同时,也建议这样写
既有输入参数也有输出参数的存储过程
一般来说,存储过程的编写比基本的SQL语句复杂,编写存储过程需要更高的技能,更丰富的经验。
还有相关智能存储的例子请参考《MySQL必知必会》一书。
上述例子参考《MySQL必知必会》一书。