openGauss

开源数据库

openGauss社区官网

开源社区

什么是存储过程

张翠娉2022-09-16数据库入门

什么是存储过程

介绍

存储过程是数据库中的一个重要对象。其是一组可实现特定功能的 sql 语句集,可以传入参数,可类比 python 中的自定义函数。

存储过程用命令对象来调用,exec sp_name [参数名]

存储过程优缺点

优点

  1. 存储过程的 sql 语句都是预编译过的,执行速度比较快。

  2. 存储过程主要在服务器上运行,可降低对客户机的压力,进而减少通信量。

  3. 可保证数据的安全性和完整性。通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。

缺点

  1. 存储过程参数修改比一般代码麻烦。

  2. 存储过程调试过程复杂且繁琐。

示例

-- 创建过程
create procedure mypro6(out sum int)
begin
declare num int default 0;
set sum = 0;
repeat-- 循环开始
set num = num+1;
set sum = sum+num;
until num>=10
end repeat; -- 循环结束
end;
-- 调用过程
call mypro6(@sum);
-- 查询变量值
select @sum;