PL/pgSQL之入門

PL/pgSQL介紹

plpgsql入門,介紹使用它有哪些優勢以及一個HelloWorld。git

PL/pgSQL是一種用於PostgreSQL數據庫系統的可載入的過程語言。github

  • 能夠被用來建立函數和觸發器過程
  • 對SQL語言增長控制結構
  • 能夠執行復雜計算
  • 繼承全部用戶定義類型、函數和操做符
  • 能夠被定義爲受服務器信任
  • 便於使用

優勢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 ];

真正的HelloWorldspa

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;

執行code

將以上語句複製在Navicat或者PgAdmin等數據庫客戶端執行,便可建立helloworld函數。blog

以上看到執行helloworld函數後輸出信息以及結果,結果爲plpgsql。

以上爲本篇的入門介紹,歡迎各位批評指正。

關於做者

你們有須要介紹哪些部分,或者一些想法歡迎聯繫我。

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

劉航,國信司南(北京)地理信息技術有限公司,技術經理。負責過多個基於 PostgreSQL 數據庫以及 PostGIS 的大中型項目。公司矢量切片產品(基於 PostgreSQL 數據庫)研發核心人員。

相關文章
相關標籤/搜索