日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

PostgreSQL-PL/pgSQL

發布時間:2024/8/26 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PostgreSQL-PL/pgSQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考:

https://wiki.postgresql.org/wiki/9.1%E7%AC%AC%E4%B8%89%E5%8D%81%E4%B9%9D%E7%AB%A0

摘記:

PL/pgSQL是 PostgreSQL 數據庫系統的一個可裝載的過程語言。

在PL/pgSQL中你可以把一塊運算和一系列命令在數據庫服務器里面組成一個塊,因此這樣就擁有了過程語言的力量并且簡化 SQL 的使用,并且能大量節約客戶端/服務器通訊之間的開銷。

客戶端和服務端之間額外的傳輸將被取消. 客戶端不需要也不用客戶端和服務端之間進行封裝或者傳輸的中間結果。 可以避免命令的多輪解析

在PL/pgSQL中編寫的函數可以用服務器支持的任何標量參數或者數組類型,并且他們可以返回這些類型的任何結果。它們也能接受或者返回任何 聲明的復合類型(行類型)。聲明一個PL/pgSQL函數返回record函數,這意味這這個結果是一個行類型,這個行的字段是在調用它的查詢中指定的。

PL/pgSQL函數能夠用VARIADIC標志聲明一個可變的數字參數。這個方法實際和SQL的函數是用的方法是一樣的。

PL/pgSQL函數也可以聲明并接受返回多態的類型anyelement, anyarray, anynonarray, 和anyenum。一個多態的函數實際操作的數據類型可以在不同的調用環境中變化。

PL/pgSQL函數也能聲明并返回單個實例的任意一個數據類型集(或者表)。這樣的函數通過為結果集每個需要返回的元素執行一個RETURN NEXT生成它的輸出,或者用RETURN QUERY的輸出來評估一個查詢的結果。

最后,PL/pgSQL 函數可以聲明為返回void,如果它沒什么有用的值可以返回的話。

PL/pgSQL函數也能夠用輸出的參數來進行聲明并代替一個明確的返回類型。這不會為這個語言添加任何基本的功能,但是這樣常常是很方便的,特別是返回多個值的時候。這個RETURNS TABLE表示法也能用RETURNS SETOF進行替換。

?


?

我覺得雖然plpgsql是過程語言,但是pg中所編寫的過程基本上都屬于函數,因為關鍵字create function 和 returns 是固定的,而mysql中可以分開create 存儲過程procedure 和函數function 兩類,function 都是要明確返回類型的,那再在從上述PL/pgSQL 函數可以聲明為返回void可以看出plpgsql 一樣可以“模仿”完成procedure的功能扮演,是殊途同歸的,只是pg上更加強調這是一種語言:PL/pgSQL,而mysql只是單純的具備了可編寫存儲過程和函數這兩種功能。

?

?

?

?

yun=> \dL語言列表名稱 | 擁有者 | 信任 | 描述 ---------+----------+------+------------------------------plpgsql | postgres | t | PL/pgSQL procedural language (1 行記錄)

?

轉載于:https://www.cnblogs.com/right-dress/p/4838623.html

總結

以上是生活随笔為你收集整理的PostgreSQL-PL/pgSQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。