plpgsql系列教程(1)-入门

本文由 @小刘先森 原创,转载请注明出处。

plpgsql系列文章,方便小伙伴们学习。

PL/pgSQL从入门到放弃(1)-入门
PL/pgSQL从入门到放弃(2)-变量定义与数据类型
PL/pgSQL从入门到放弃(3)-函数
PL/pgSQL从入门到放弃(4.1)-函数返回常用数据类型——组合数据类型
PL/pgSQL从入门到放弃(4.2)-函数返回常用数据类型——行数据类型
PL/pgSQL从入门到放弃(4.3)-函数返回常用数据类型——记录数据类型
PL/pgSQL从入门到放弃(4.4)-函数返回常用数据类型——复制数据类型
PL/pgSQL从入门到放弃(5)-条件语句与循环语句
PL/pgSQL从入门到放弃(6)-游标

PL/pgSQL介绍

plpgsql入门,介绍使用它有哪些优点以及一个HelloWorld。

PL/pgSQL是一种用于PostgreSQL数据库系统的可载入的过程语言。

  • 可以被用来创建函数和触发器过程
  • 对SQL语言增加控制结构
  • 可以执行复杂计算
  • 继承所有用户定义类型、函数和操作符
  • 可以被定义为受服务器信任
  • 便于使用

优点

  • 客户端和服务器之间的额外往返通信被消除
  • 客户端不需要的中间结果不必被整理或者在服务器和客户端之间传送
  • 多轮的查询解析可以被避免
    与不使用存储函数的应用相比,这能够导致可观的性能提升。

PL/pgSQL的HelloWorld

函数的结构:

CREATE FUNCTION somefunc(integer, text) RETURNS integer
AS 'function body text'
LANGUAGE plpgsql;

在开发过程中不关心函数是否存在,可以使用 CREATE OR REPLACE Function来创建函数。

PL/pgSQL是一种块结构的语言。一个块被定义为:

[ <<label>> ]
[ DECLARE
    declarations 
BEGIN
    statements
END [ label ];

真正的HelloWorld

CREATE FUNCTION helloworld() RETURNS varchar AS $$
<< outerblock >>
DECLARE
    name varchar := 'unknown';
BEGIN
    RAISE NOTICE 'My Name is %', name ;  -- Prints (My Name is unknown)
    name := 'plpgsql';
    --
    -- 创建一个子块
    --
    DECLARE
        name varchar := 'interblock';
    BEGIN
        RAISE NOTICE 'My Name is %', name;  -- Prints (My Name is interblock)
        RAISE NOTICE 'My Name is %', outerblock.name;  -- Prints (My Name is unknown)
    END;
    RAISE NOTICE 'My Name is %', name;  -- Prints (My Name is plpgsql)
    RETURN name;
END;
$$ LANGUAGE plpgsql;

执行
将以上语句复制在Navicat或者PgAdmin等数据库客户端执行,即可创建helloworld函数。
执行函数-结果执行函数-信息输出
以上看到执行helloworld函数后输出信息以及结果,结果为plpgsql。

以上为本篇的入门介绍,欢迎各位批评指正。

关于作者

大家有需要介绍哪些部分,或者一些想法欢迎联系我。

GISer
QQ: 1016817543
邮箱:1016817543@qq.com
github:https://github.com/MrSmallLiu (欢迎star)

相关链接

欢迎各位Star、Issues、PR

  • 3
    点赞
  • 34
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

小刘先森

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值