成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > 對(duì)Postgresql中的json和array使用介紹

對(duì)Postgresql中的json和array使用介紹

熱門標(biāo)簽:天津開發(fā)區(qū)地圖標(biāo)注app 電銷機(jī)器人能補(bǔ)救房產(chǎn)中介嗎 400電話申請(qǐng)客服 江蘇400電話辦理官方 電話機(jī)器人怎么換人工座席 廣州電銷機(jī)器人公司招聘 地圖標(biāo)注要花多少錢 濟(jì)南外呼網(wǎng)絡(luò)電話線路 移動(dòng)外呼系統(tǒng)模擬題

結(jié)合近期接觸到的知識(shí)點(diǎn),做了一個(gè)歸納。會(huì)持續(xù)更新

json

官網(wǎng)文檔 http://www.postgres.cn/docs/12/datatype-json.html

json的兩種格式

總結(jié):json輸入快,處理慢。是精準(zhǔn)拷貝,所以能準(zhǔn)確存儲(chǔ)遺留對(duì)象的原格式,如對(duì)象鍵順序。jsonb輸入慢,處理快。會(huì)被重新解析成json數(shù)據(jù),不保存原對(duì)象的鍵順序,并且去重相同的鍵值,以最后一個(gè)為準(zhǔn)。通常,除非有特別特殊的需要(例如遺留的對(duì)象鍵順序假設(shè)),大多數(shù)應(yīng)用應(yīng)該 更愿意把 JSON 數(shù)據(jù)存儲(chǔ)為jsonb

官網(wǎng):

json 和 jsonb數(shù)據(jù)類型接受***幾乎***完全相同的值集合作為輸入。 主要的實(shí)際區(qū)別之一是效率。json數(shù)據(jù)類型存儲(chǔ)輸入文本的精準(zhǔn)拷貝,處理函數(shù)必須在每 次執(zhí)行時(shí)必須重新解析該數(shù)據(jù)。而jsonb數(shù)據(jù)被存儲(chǔ)在一種分解好的 二進(jìn)制格式中,它在輸入時(shí)要稍慢一些,因?yàn)樾枰龈郊拥霓D(zhuǎn)換。但是 jsonb在處理時(shí)要快很多,因?yàn)椴恍枰馕?。jsonb也支 持索引,這也是一個(gè)令人矚目的優(yōu)勢(shì)。

由于json類型存儲(chǔ)的是輸入文本的準(zhǔn)確拷貝,其中可能會(huì)保留在語(yǔ)法 上不明顯的、存在于記號(hào)之間的空格,還有 JSON 對(duì)象內(nèi)部的鍵的順序。還有, 如果一個(gè)值中的 JSON 對(duì)象包含同一個(gè)鍵超過(guò)一次,所有的鍵/值對(duì)都會(huì)被保留( 處理函數(shù)會(huì)把最后的值當(dāng)作有效值)。相反,jsonb不保留空格、不 保留對(duì)象鍵的順序并且不保留重復(fù)的對(duì)象鍵。如果在輸入中指定了重復(fù)的鍵,只有 最后一個(gè)值會(huì)被保留。

通常,除非有特別特殊的需要(例如遺留的對(duì)象鍵順序假設(shè)),大多數(shù)應(yīng)用應(yīng)該 更愿意把 JSON 數(shù)據(jù)存儲(chǔ)為jsonb

由于json類型存儲(chǔ)的是輸入文本的準(zhǔn)確拷貝,其中可能會(huì)保留在語(yǔ)法 上不明顯的、存在于記號(hào)之間的空格,還有 JSON 對(duì)象內(nèi)部的鍵的順序。還有, 如果一個(gè)值中的 JSON 對(duì)象包含同一個(gè)鍵超過(guò)一次,所有的鍵/值對(duì)都會(huì)被保留( 處理函數(shù)會(huì)把最后的值當(dāng)作有效值)。相反,jsonb不保留空格、不 保留對(duì)象鍵的順序并且不保留重復(fù)的對(duì)象鍵。如果在輸入中指定了重復(fù)的鍵,只有 最后一個(gè)值會(huì)被保留。

-----------1.鍵的順序
SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::json;
           json            
-------------------------------------------------
 {"bar": "baz", "balance": 7.77, "active":false}
(1 row)
SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::jsonb;
           jsonb            
--------------------------------------------------
 {"bar": "baz", "active": false, "balance": 7.77}
(1 row)
---------2.去重
SELECT '{"bar": "baz", "balance": 7.77, "balance":false}'::jsonb; --去重
{"bar": "baz", "balance": false}
SELECT '{"bar": "baz", "balance": 7.77, "balance":false}'::json; --不去重
{"bar": "baz", "balance": 7.77, "balance":false}
select '[1, 2, 2]'::jsonb --數(shù)組不去重
[1, 2, 2]

將字符串轉(zhuǎn)為json格式

sq-- 簡(jiǎn)單標(biāo)量/基本值
-- 基本值可以是數(shù)字、帶引號(hào)的字符串、true、false或者null
SELECT '5'::json;
-- 有零個(gè)或者更多元素的數(shù)組(元素不需要為同一類型)
SELECT '[1, 2, "foo", null]'::json;
-- 包含鍵值對(duì)的對(duì)象
-- 注意對(duì)象鍵必須總是帶引號(hào)的字符串
SELECT '{"bar": "baz", "balance": 7.77, "active": false}'::json;
-- 數(shù)組和對(duì)象可以被任意嵌套
SELECT '{"foo": [true, "bar"], "tags": {"a": 1, "b": null}}'::json;

輸出:

5
[1, 2, “foo”, null]
{“bar”: “baz”, “balance”: 7.77, “active”: false}
{“foo”: [true, “bar”], “tags”: {“a”: 1, “b”: null}}

判斷是否包含/存在 @> 和 ?

-- 簡(jiǎn)單的標(biāo)量/基本值只包含相同的值:
SELECT '"foo"'::jsonb @> '"foo"'::jsonb; --得 真t
-- 右邊的數(shù)字被包含在左邊的數(shù)組中:
SELECT '[1, 2, 3]'::jsonb @> '[1, 3]'::jsonb; --t 
-- 數(shù)組元素的順序沒(méi)有意義,因此這個(gè)例子也返回真:
SELECT '[1, 2, 3]'::jsonb @> '[3, 1]'::jsonb; --t
-- 重復(fù)的數(shù)組元素也沒(méi)有關(guān)系:
SELECT '[1, 2, 3]'::jsonb @> '[1, 2, 2]'::jsonb; --t
-- 右邊具有一個(gè)單一鍵值對(duì)的對(duì)象被包含在左邊的對(duì)象中:
SELECT '{"product": "PostgreSQL", "version": 9.4, "jsonb": true}'::jsonb @> '{"version": 9.4}'::jsonb; --t

jsonb還有一個(gè)存在操作符,它是包含的一種 變體:它測(cè)試一個(gè)字符串(以一個(gè)text值的形式給出)是否出 現(xiàn)在jsonb值頂層的一個(gè)對(duì)象鍵或者數(shù)組元素中。

除非特別注解, 下面這些例子返回真:

-- 字符串作為一個(gè)數(shù)組元素存在:
SELECT '["foo", "bar", "baz"]'::jsonb ? 'bar'; --t
-- 字符串作為一個(gè)對(duì)象鍵存在:
SELECT '{"foo": "bar"}'::jsonb ? 'foo'; --t
-- 不考慮對(duì)象值:
SELECT '{"foo": "bar"}'::jsonb ? 'bar'; -- 得到假

當(dāng)涉及很多鍵或元素時(shí),JSON 對(duì)象比數(shù)組更適合于做包含或存在測(cè)試, 因?yàn)樗鼈儾幌駭?shù)組,進(jìn)行搜索時(shí)會(huì)進(jìn)行內(nèi)部?jī)?yōu)化,并且不需要被線性搜索。

索引

-> 數(shù)組中是查找第幾項(xiàng),json中是取某key的元素object
->> json中是取某key的元素text
#>  json中是通過(guò)路徑取元素object
#>>  json中是通過(guò)路徑取元素text
json:='[{"a":"foo"},{"b":"bar"},{"c":"baz"}]'::json
--獲取json數(shù)組中的某一項(xiàng)元素
--下標(biāo)從0開始
select json->2 from test where name='jsonarray' --{"c": "baz"}
--獲取json某一key的值為object
select (json->2)->'c' from test where name='jsonarray' --"baz"
--獲取json某一key的值為text
select (json->2)->>'c' from test where name='jsonarray' --"baz"
--獲取json某值通過(guò)路徑 object
 '{"a": {"b":{"c": "foo"}}}'::json#>'{a,b}' --{"c": "foo"}
--獲取json某值通過(guò)路徑 text
 '{"a":[1,2,3],"b":[4,5,6]}'::json#>>'{a,2}' --3

補(bǔ)充:postgresql 數(shù)據(jù)庫(kù) jsonb/json中 array或int 類型進(jìn)行的交集比較 存儲(chǔ)過(guò)程字符串、整數(shù)數(shù)組條件查詢

首先要新增這兩個(gè)存儲(chǔ)過(guò)程

新增存儲(chǔ)過(guò)程字符串?dāng)?shù)組條件查詢

CREATE OR REPLACE FUNCTION json_arr2text_arr(_js json) RETURNS text[] AS
$$
DECLARE
 anyArray text[];
begin
SELECT ARRAY(SELECT json_array_elements_text(_js)) INTO anyArray;
RETURN anyArray;
end
$$ 
LANGUAGE plpgsql;

查詢字符串?dāng)?shù)組中存在NP1的記錄

select * from tb_template_area_safe WHERE json_arr2text_arr(area_functions) @> array['NP1'];

新增存儲(chǔ)過(guò)程整數(shù)數(shù)組條件查詢

CREATE OR REPLACE FUNCTION json_arr2int_arr(_js json) RETURNS int[] AS 
$$
DECLARE
 anyArray int[];
begin
SELECT ARRAY(SELECT json_array_elements_text(_js)::int) INTO anyArray;
RETURN anyArray;
end;
$$ 
LANGUAGE plpgsql;

查詢條件是 左面 的 包含右面的

兩者的交集

SELECT tdnm.mid, tdnm.title, tdnm.content, tdnm.ui_id, tdnm.create_time, tdnm.cancel_time, 
tdnm.job_ids, tdnm.remarks, tdnm.message_level_code, tdnm.channels FROM tb_data_notify_message 
tdnm WHERE 1=1 and json_arr2text_arr(tdnm.job_ids) 
array[['1','10']] ORDER BY create_time DESC
 

數(shù)組操作符:

Operator Description Example Result
= equal ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3] t
> not equal ARRAY[1,2,3] > ARRAY[1,2,4] t
less than ARRAY[1,2,3] ARRAY[1,2,4] t
> greater than ARRAY[1,4,3] > ARRAY[1,2,4] t
= less than or equal ARRAY[1,2,3] = ARRAY[1,2,3] t
>= greater than or equal ARRAY[1,4,3] >= ARRAY[1,4,3] t
@> contains ARRAY[1,4,3] @> ARRAY[3,1] t
@ is contained by ARRAY[2,7] @ ARRAY[1,7,4,2,6] t
overlap (have elements in common) ARRAY[1,4,3] ARRAY[2,1] t
|| array-to-array concatenation ARRAY[1,2,3] || ARRAY[4,5,6] {1,2,3,4,5,6}
|| array-to-array concatenation ARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]] {{1,2,3},{4,5,6},{7,8,9}}
|| element-to-array concatenation 3 || ARRAY[4,5,6] {3,4,5,6}
|| array-to-element concatenation ARRAY[4,5,6] || 7 {4,5,6,7}

PostgreSQL 9.4.4 中文手冊(cè)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 解決PostgreSQL Array使用中的一些小問(wèn)題
  • postgresql數(shù)據(jù)庫(kù)使用說(shuō)明_實(shí)現(xiàn)時(shí)間范圍查詢
  • postgresql 實(shí)現(xiàn)將數(shù)組變?yōu)樾?/li>
  • PostgreSQL 對(duì)數(shù)組的遍歷操作
  • postgres array_to_string和array的用法講解

標(biāo)簽:溫州 辛集 海西 昭通 杭州 寶雞 濮陽(yáng) 榆林

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《對(duì)Postgresql中的json和array使用介紹》,本文關(guān)鍵詞  對(duì),Postgresql,中的,json,和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《對(duì)Postgresql中的json和array使用介紹》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于對(duì)Postgresql中的json和array使用介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产综合无码一区二区色蜜蜜| 一区二区三区免费网站| 亚洲精选视频在线| 久久中文字幕电影| 亚洲日本精品| 九九九在线观看视频| 无码少妇一区二区| 成人网18免费网站在线| 精品在线视频免费观看| 香蕉视频xxxx| 日韩精品一区二区三区视频播放| 欧美综合77777色婷婷| 成人欧美一区二区三区白人| 色综合网站在线| 玖草视频在线| 欧美伦理在线视频| 成人av综合一区| 欧美一区二区性放荡片| 亚洲美女少妇无套啪啪呻吟| 国产一区二区三区四区二区| 亚洲一区二区高清| 正在播放一区| 日本一区二区高清不卡| 99在线观看视频网站| 久久久久久久久久久久91| 国产精品成人av在线| 91麻豆精品国产91久久久久推荐资源| 人人干人人爱人人爱| 国产乱码精品一区二区三区亚洲人| 亚洲va欧美va人人爽午夜| 嫩草嫩草嫩草嫩草嫩草| av高清久久久| 成人黄色毛片| 欧洲亚洲精品在线| 国产一二三区在线| 成人av小说网| 一区二区三区回区在观看免费视频| 成人性教育av免费网址| 日本亚洲欧美三级| 手机看片久久久| 亚洲成人手机在线| 色综合久久久久久久| 国产高清精品一区二区三区| 少妇高潮一区二区三区喷水| 国产福利久久精品| 色偷偷成人一区二区三区91| 国产欧美日韩视频在线| 国产精品乱子乱xxxx| 欧美日韩在线视频免费| 亚洲日韩色图| 国产精品午夜国产小视频| 999精品免费视频| 天堂在线观看| 性欧美xxx极品另类| 国产成人无码www免费视频播放| 欧美日韩生活片| 黑人与亚洲人色ⅹvideos| 久久久久久久久久久福利| 日本高清不卡中文字幕| 97精品国产97久久久久久粉红| 国产69精品久久久久毛片| 极品久久久久久| yy6080久久伦理一区二区| 91久久精品美女| 69堂免费精品视频在线播放| 亚洲在线观看av| 亚洲日本欧美在线| 国产又爽又黄又刺激的软件| 国产精品一线| 日韩在线观看一区| 精品网站在线| 欧美亚洲精品在线观看| 日韩欧美中文| 国产情侣一区二区三区| 日韩久久久久| 97人妻天天摸天天爽天天| 亚洲精品人妻无码| 五月婷婷狠狠干| 2023国产精华国产精品| 美女露胸视频在线观看| 成人ssswww在线播放| 久久久777精品电影网影网| 国产精品亚洲第五区在线| 777奇米成人网| 8050国产精品久久久久久| 高清国产午夜精品久久久久久| av在线免费观看不卡| 久久99热在线观看7| 香蕉自在线视频| 亚洲另类在线视频| 久久精品丝袜高跟鞋| 久久综合久中文字幕青草| 日韩欧美不卡在线观看视频| gogogo影视剧免费观看在线观看| 91九色02白丝porn| 在线免费观看的av网站| 91精品动漫在线观看| 国产激情视频一区二区在线观看| 国产深喉视频一区二区| 中文字幕第15页| 久久国产精品影院| 国产精品久久久久无码av| 亚洲欧美久久234| 欧美绝品在线观看成人午夜影视| 国产福利片一区二区| 久久在线播放| 99热这里只有精品9| 午夜国产在线视频| 一级黄色大片儿| 国产成人久久精品麻豆二区| 你懂的在线免费观看| 欧美日韩国产另类一区| 成人免费看视频网站| 国产乱子视频| 亚洲看片一区| 91亚洲精品一区二区| 亚洲天堂精品在线观看| 精品成人一区二区三区免费视频| 91麻豆制片厂| 欧美怡红院视频一区二区三区| 亚洲六月丁香色婷婷综合久久| 精品亚洲一区二区三区四区| 国产日韩欧美一区二区三区在线观看| 97精品高清一区二区三区| 亚洲精品日韩激情在线电影| 国产一区高清| av不卡免费电影| 国产成人精品18| 看片网站在线观看| 国产情侣自拍av| 日本视频在线一区| 日韩免费特黄一二三区| 九九热这里有精品视频| 欧美成人三级伦在线观看| 狠狠综合久久久综合| 无人区在线高清完整免费版 一区二| 精品国产青草久久久久96| gogogo高清在线观看一区二区| 亚洲精品无码久久久久| 国产欧美日韩卡一| 亚洲日本香蕉视频| 91社区国产高清| 国产成人综合美国十次| 国产精品成人一区二区三区夜夜夜| 国产啊啊啊视频在线观看| 中文产幕区在线观看| 精品无码一区二区三区电影桃花| 国产91色在线播放| 国产精品传媒视频| 久久久欧美一区二区| 国产寡妇树林野战在线播放| 欧美r级在线观看| 国产成人无码av| 成人免费高清视频在线观看| 亚洲小说欧美另类社区| 国产视频一区二区在线| 亚洲三级在线播放| 超碰97在线资源| 亚洲japanese制服美女| 暖暖视频日本免费| 熟妇人妻一区二区三区四区| 欧美视频免费播放| 嫩草视频免费在线观看| 日韩一区二区三区免费| 99国产超薄丝袜足j在线观看| 中文字幕校园春色| 在线视频观看国产| 手机在线免费看av| 国产男女猛烈无遮挡在线喷水| 国产成人av影视| 91丨精品丨国产| 91香蕉国产线在线观看| 国产精品免费av| 亚洲自拍另类| 国产偷国产偷亚洲高清97cao| 国产一区二区三区香蕉| 天堂在线国产| 久久久久久久久久免费视频| 粉嫩蜜臀av国产精品网站| 成人免费在线播放| 中文字幕乱视频| 色一情一交一乱一区二区三区| 嫩草影院一区二区三区| 精品少妇一区二区三区在线| 中文字幕一区二区三区四区视频| 欧美性色综合网| 性感av在线播放| 中文在线资源观看网站视频免费不卡| 久久狠狠亚洲综合| 亚洲欧美国产日韩中文字幕| 欧美丰满少妇xxxbbb| 亚洲色成人www永久在线观看| 成年人视频在线免费| 美女露胸视频在线观看| 国产精品久久久久久一区二区三区| 日韩精品欧美国产精品忘忧草| 99久久综合国产精品二区| eeuss影院www免费视频| 国产一区二区在线免费播放| 亚洲免费成人| 国产成人免费看| 欧美男同视频网| 日韩成人中文字幕| 亚洲欧美一区二区三区情侣bbw| 免费av在线网址| 欧美三级网址| 日本a在线播放| 国产91在线亚洲| 日韩国产一区三区| 国产精品亚洲一区二区三区在线观看| 99久久婷婷这里只有精品| 2024国产精品视频| 天天干狠狠干| 黄色三级视屏| 成人性视频免费看| 亚洲国产精彩视频| 96av在线| 久久精品在线| 1024亚洲| 成人3d动漫一区二区三区| 精品国产亚洲AV| 日本黄色一区二区三区| 国产精品区一区二区三在线播放| 91成人在线精品视频| 欧美午夜精品久久久久久久| 国产免费观看av| 粉嫩喷白浆久久| 久久综合久久综合亚洲| 亚洲成人av一区二区三区| 三级小说欧洲区亚洲区| 色视频一区二区| 亚洲国语精品自产拍在线观看| 欧美综合一区第一页| 欧美系列电影免费观看| 欧美日韩精品在线观看视频| 97国产在线观看| 国产综合色在线| 成人毛片视频在线观看| 91精品国产99久久久久久红楼| 久久97精品久久久久久久不卡| 国产毛片一区二区三区va在线| 亚洲免费大片在线观看| 国产精品视频xxx| 91精品国产福利在线观看麻豆| 亲爱的老师6电影韩剧| 免费高清视频在线观看| 日本久久精品| 91九色在线观看视频| 偷拍一区二区| 日本精品视频一区二区| 精东传媒在线观看| 日韩电影在线观看完整版| 亚洲a∨精品一区二区三区导航| 中文字幕av久久| av中文字幕在线| 夜夜精品视频一区二区| 欧美精品免费在线观看| 亚洲一区免费在线| 亚洲三级 欧美三级| 在线观看岛国av| 精品精品精品| 少妇高潮一区二区三区喷水| 国产亚洲女人久久久久毛片| 亚洲欧美中文字幕在线一区| 久久国产一级片| 国产精品高潮呻吟| 风流少妇一区二区三区91| 日本三级一区二区| 色综合天天狠狠| 美女性感视频久久| 国产精品欧美综合在线| 国精品一区二区三区| 亚洲激情 国产| 国产精品电影一区二区| 国产一级片黄色| 亚洲国产综合在线观看| 日本成人a视频| 日本亚洲自拍| 成人午夜免费视频| 久久久久久久久久久久国产精品| 久久草在线看| 国产91网红主播在线观看| 黄色一级大片免费| 一级黄色录像毛片| 久久久.www| 最近中文字幕免费观看| 精品人妻无码一区二区| 成人18夜夜网深夜福利网| 五月婷婷激情视频| 日韩毛片在线一区二区毛片| 日欧美一区二区| 欧美free性69| av高清一区二区| 精品久久久久av影院| 国产精品久久久久久久久免费桃花| 日本丰满www色| 美女视频免费观看网站在线| 欧美一区二区在线观看| 国产一区二区在线影院| 午夜精品一区二区三区电影天堂| www.久久精品.com| 影音先锋欧美精品| 内射无码专区久久亚洲| 日本久久伊人| 国产精品白丝一区二区三区| 亚洲av无码一区二区三区观看| 一区二区三区午夜| 国产激情精品一区二区三区| 成人三级黄色免费网站| 伊人激情综合网| 天天操天天搞| 国产精品18久久久| 天天做天天摸天天爽国产一区| 亚洲高清视频免费| 尤物在线免费视频| 免费精品在线视频| 欧美日韩一区 二区 三区 久久精品| 欧美少妇bbb| 久久香蕉综合色| 免费人成在线观看网站| 欧美极品美女视频网站在线观看免费| 特级做a爱片免费69| 伊人av综合网| 欧美一级黄视频| 秋霞电影网一区二区| 亚洲国产片色| 亚洲免费影视| 成视频在线观看免费观看|