PL/pgSQL從入門到放棄(1)-入門

本文由 @小劉先森 原創(chuàng),轉(zhuǎn)載請注明出處怎囚。

plpgsql系列文章,方便小伙伴們學(xué)習(xí)。

PL/pgSQL從入門到放棄(1)-入門
PL/pgSQL從入門到放棄(2)-變量定義與數(shù)據(jù)類型
PL/pgSQL從入門到放棄(3)-函數(shù)
PL/pgSQL從入門到放棄(4.1)-函數(shù)返回常用數(shù)據(jù)類型——組合數(shù)據(jù)類型
PL/pgSQL從入門到放棄(4.2)-函數(shù)返回常用數(shù)據(jù)類型——行數(shù)據(jù)類型
PL/pgSQL從入門到放棄(4.3)-函數(shù)返回常用數(shù)據(jù)類型——記錄數(shù)據(jù)類型
PL/pgSQL從入門到放棄(4.4)-函數(shù)返回常用數(shù)據(jù)類型——復(fù)制數(shù)據(jù)類型
PL/pgSQL從入門到放棄(5)-條件語句與循環(huán)語句
PL/pgSQL從入門到放棄(6)-游標

PL/pgSQL介紹

plpgsql入門灾梦,介紹使用它有哪些優(yōu)點以及一個HelloWorld。

PL/pgSQL是一種用于PostgreSQL數(shù)據(jù)庫系統(tǒng)的可載入的過程語言妓笙。

  • 可以被用來創(chuàng)建函數(shù)和觸發(fā)器過程
  • 對SQL語言增加控制結(jié)構(gòu)
  • 可以執(zhí)行復(fù)雜計算
  • 繼承所有用戶定義類型若河、函數(shù)和操作符
  • 可以被定義為受服務(wù)器信任
  • 便于使用

優(yōu)點

  • 客戶端和服務(wù)器之間的額外往返通信被消除
  • 客戶端不需要的中間結(jié)果不必被整理或者在服務(wù)器和客戶端之間傳送
  • 多輪的查詢解析可以被避免
    與不使用存儲函數(shù)的應(yīng)用相比,這能夠?qū)е驴捎^的性能提升寞宫。

PL/pgSQL的HelloWorld

函數(shù)的結(jié)構(gòu):

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

在開發(fā)過程中不關(guān)心函數(shù)是否存在萧福,可以使用 CREATE OR REPLACE Function來創(chuàng)建函數(shù)。

PL/pgSQL是一種塊結(jié)構(gòu)的語言辈赋。一個塊被定義為:

[ <<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';
    --
    -- 創(chuàng)建一個子塊
    --
    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;

執(zhí)行
將以上語句復(fù)制在Navicat或者PgAdmin等數(shù)據(jù)庫客戶端執(zhí)行鲫忍,即可創(chuàng)建helloworld函數(shù)。

執(zhí)行函數(shù)-結(jié)果
執(zhí)行函數(shù)-信息輸出

以上看到執(zhí)行helloworld函數(shù)后輸出信息以及結(jié)果钥屈,結(jié)果為plpgsql悟民。

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

關(guān)于作者

大家有需要介紹哪些部分逾雄,或者一些想法歡迎聯(lián)系我。

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

相關(guān)鏈接

歡迎各位Star、Issues鸦泳、PR

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钾麸,一起剝皮案震驚了整個濱河市更振,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌饭尝,老刑警劉巖肯腕,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钥平,居然都是意外死亡实撒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門涉瘾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來知态,“玉大人,你說我怎么就攤上這事立叛「好簦” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵秘蛇,是天一觀的道長其做。 經(jīng)常有香客問我,道長彤叉,這世上最難降的妖魔是什么庶柿? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任村怪,我火速辦了婚禮秽浇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘甚负。我一直安慰自己柬焕,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布梭域。 她就那樣靜靜地躺著斑举,像睡著了一般。 火紅的嫁衣襯著肌膚如雪病涨。 梳的紋絲不亂的頭發(fā)上富玷,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音,去河邊找鬼赎懦。 笑死雀鹃,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的励两。 我是一名探鬼主播黎茎,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼当悔!你這毒婦竟也來了傅瞻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤盲憎,失蹤者是張志新(化名)和其女友劉穎嗅骄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饼疙,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡掸读,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宏多。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片儿惫。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖伸但,靈堂內(nèi)的尸體忽然破棺而出肾请,到底是詐尸還是另有隱情,我是刑警寧澤更胖,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布铛铁,位于F島的核電站,受9級特大地震影響却妨,放射性物質(zhì)發(fā)生泄漏饵逐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一彪标、第九天 我趴在偏房一處隱蔽的房頂上張望倍权。 院中可真熱鬧,春花似錦捞烟、人聲如沸薄声。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽默辨。三九已至,卻和暖如春苍息,著一層夾襖步出監(jiān)牢的瞬間缩幸,已是汗流浹背壹置。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留表谊,地道東北人蒸绩。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像铃肯,于是被迫代替她去往敵國和親患亿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一、概述 PL/pgSQL函數(shù)在第一次被調(diào)用時,其函數(shù)內(nèi)的源代碼(文本)將被解析為二進制指令樹鹉戚,但是函數(shù)內(nèi)的表達式...
    GadflyBSD閱讀 3,246評論 0 1
  • 一、PostgreSQL簡介 PostgreSQL是自由的對象-關(guān)系型數(shù)據(jù)庫服務(wù)器(數(shù)據(jù)庫管理系統(tǒng))咙冗,在靈活的BS...
    Bogon閱讀 2,123評論 0 3
  • 原創(chuàng)文章,首發(fā)自作者個人博客Jason's Blog漂彤。轉(zhuǎn)載請務(wù)必在文章開頭處注明出自Jason's Blog雾消,并給...
    郭俊Jason閱讀 5,862評論 3 29
  • --- layout: post title: "如果有人問你關(guān)系型數(shù)據(jù)庫的原理,叫他看這篇文章(轉(zhuǎn))" date...
    藍墜星閱讀 777評論 0 3
  • 今天是什么日子?今天必須做的一件事是什么媳板? 一頭霧水桑腮?呵呵,我知道你肯定一臉懵逼蛉幸。 沒關(guān)系破讨,且聽我娓娓道來: 今天...
    天涯Michael閱讀 345評論 0 0