PostgreSQL数据库日常学习笔记12-函数(存储过程)

PostgreSQL数据库日常学习笔记12-函数(存储过程),第1张

概述温馨提示:本文中部分描述仅为个人理解,存在描述偏差或错误,内容仅供参考 某些其它数据库系统所定义活动数据库规则,通常是存储过程和触发器。在PostgreSQL中,这些规则可以通过函数和触发器来实现。 PostgreSQL函数也称为PostgreSQL存储过程。 首先我们简要介绍函数这个概念。PostgreSQL存储过程具有以下优点 减少应用与数据库服务器通信开销,提升网络性能。在某些大型业务系统中

温馨提示:本文中部分描述仅为个人理解,存在描述偏差或错误,内容仅供参考

某些其它数据库系统所定义活动数据库规则,通常是存储过程和触发器。在Postgresql中,这些规则可以通过函数和触发器来实现。

Postgresql函数也称为Postgresql存储过程。

首先我们简要介绍函数这个概念。Postgresql存储过程具有以下优点

减少应用与数据库服务器通信开销,提升网络性能。在某些大型业务系统中,大多需要使用多个存储过程等,存储过程等降低网络通信开销就具有明显优势

存储过程存于数据库服务器中,首次被调用后即被编译,再调用时无需二次编译,直接被服务器执行,可以提高性能

存储过程可以重复使用,能够减少数据库开发人员和管理人员工作量

保护数据库元信息。如果应用程序直接使用SQL语句查询数据库,会将数据库表结构等信息暴露给应用程序,不利于数据库访问控制

细粒度权限管理。直接控制用户调用存储过程,存储过程可以增强数据安全性

将业务实现与应用程序解耦。当业务需求更新时,只需更新存储过程,无需要变动应用程序

可以通过其它语言并可及其它系统交互。Postgresql官方支持PL/pgsql,PL/Tcl,PL/Perl,PL/Python,PL/Java,PL/PHP, PL/R,PL/Ruby,PL/Scheme,PL/sh等(编程)语言。

当然,Postgresql存储过程也有调试不便和可移植性差等缺点。

变更存储过程时,应用程序内需要同步加以修改,不同数据库的存储过程定义方式不同,支持的语言及语法不同,存在一定移植成本。

存储过程可选声明指定数据库,函数主体functionbodyvariablename名称可为空。返回类型returndatatype 可以是复合型数据。中括号部分为可选部分。|为二选一条件选择,输入结果要和指定返回结果数据类型相同,所有关键字都不区分大小写,标识符被隐含地转换成小写字符,除非使用英文双引号""。

---不完整存储过程示例代码CREATE OR REPLACE FUNCTION functionname (arguments,[optionalparameters],[...])RETURNS returndatatype AS $functionbodyvariablename$  [DECLARE	declarations]BEGIN  funcation body  END;RETURN functionbodyvariablename | value,LANGUAGE plsupportlanguage;

下面贴出1个简单示例函数

CREATE OR REPLACE FUNCTION add(a INTEGER,b NUMERIC)RETURNS NUMERICAS $$	SELECT a+b;$$ LANGUAGE sql;

未完待续。。。。。。

参考链接

http://www.cnblogs.com/lottu/p/7404722.html

http://www.jasongj.com/2015/12/27/SQL4_存储过程_Store Procedure/

http://panyongzheng.iteye.com/blog/2194815

注意:第二个参考链接中文和空格,建议复制地址到浏览器访问

总结

以上是内存溢出为你收集整理的PostgreSQL数据库日常学习笔记12-函数(存储过程)全部内容,希望文章能够帮你解决PostgreSQL数据库日常学习笔记12-函数(存储过程)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1172007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存