PL/pgSQL之入门

晟数学院 2021-04-16
346

点击“蓝字”关注我们


01

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。


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


        02

        关于作者



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


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


        刘航,国信司南(北京)地理信息技术有限公司,技术经理。负责过多个基于 PostgreSQL 数据库以及 PostGIS 的大中型项目。公司矢量切片产品(基于 PostgreSQL 数据库)研发核心人员。



        推荐阅读

        PostgreSQL实战经验之alter table开小差了

        2020-03-24

        PostgreSQL 12 安装和配置

        2020-01-09




        点击“阅读原文”
        文章转载自晟数学院,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论