如何在数据库中使用存储过程 【数据库高效编程 - 学习笔记 第九章】
SQL 基本是一个命令实现一个处理,即所谓的:非程序型语言。
程序型语言,可以为了达成某一目的,将处理流程通过多个命令来编写。
非程序型语言,是不能编写流程的。
存储过程(Stored Procedure):数据库中保存的一系列 SQL 命令的集合。
也可以看作相互间有关系的 SQL 命令组织在一起形成的一个小程序。
存储过程的优点:
1、提高执行性能。通过客户端执行 SQL 的时候,在数据库中,有解析到编译的前期准备过程。
但是,创建了存储过程,实际上,事先完成了解析、编译的处理,然后,保存在数据库中,因此,执行更快。
2、减轻网络负担。
3、防止对表的直接访问。(禁止对表的直接访问,只赋予相关存储过程的访问权限)
4、将数据库的处理黑匣子化。
调用存储过程时,可以指定参数。参数包括:输入参数、输出参数。通过关键字 IN、OUT、INOUT来指定参数类型。
DELIMITER //CREATE PROCEDURE sp_factorial2( IN p_num INT, OUT p_result INT)BEGIN SET p_result = 1; REPEAT SET p_result = p_result * p_num; SET p_num = p_num - 1; UNTIL p_num <= 1 END REPEAT;ENDDELIMITER ;CALL sp_factorial2(5, @res);SELECT @res;