存储过程是为了完成特定功能的一组SQL语句集,它保存在数据库侧,调时只指定名称与参数即可。使用存储过程首写要编写SQL再进行编译后调用,以后调用无需再编译。
分类
存储过程分成无返回值和带返回值二类,无返回值可称为过程,有返回值的叫存储函数。不同数据库产商的存储过程语法稍有不同,小傅老师以MYSQL为例和小伙伴们一起学习下。
1)存储过程
l语法
IN修饰的参数为输入参数,SQL语句集不能对其进行修改;OUT修饰的参数为输出参数;IN OUT同时使用的参数既可当成输入参数使用,也可当输出参数。
l例
l编译
MYSQL的默认分隔符为“;”,为避免冲突我们先用“DELIMITER //”将分割符临时指定为”//”,最后再恢复默认值。
l调用
2)存储函数
l语法
l例
l编译
l调用
存储函数相当于MYSQL的内置函数,根据函数返回数据类型可出在SQL的不同部分。
小结
当我们对一些不能公开业务的数据操作,最好把SQL封装成存储过程,而且存储过程执行效率也较高。小傅老师使用上述二个存储过程抛砖引玉,在实际应用中存储过程执行SQL语句多且复杂。