postgresql的jsonb數(shù)據(jù)查詢和修改的方法
什么是jsonb
由PostgreSQL文檔定義的數(shù)據(jù)類型json和jsonb幾乎相同;關(guān)鍵的區(qū)別在于json數(shù)據(jù)存儲為JSON輸入文本的精確副本,而jsonb以分解的二進(jìn)制形式存儲數(shù)據(jù);也就是說,不是ASCII / UTF-8字符串,而是二進(jìn)制代碼。
本文主要講的是如何隨心所欲的查詢和修改postgresql中jsonb格式的數(shù)據(jù)
一、查詢
簡單查詢
# 存儲的是key-value格式的數(shù)據(jù),通過指定的key獲取對應(yīng)的值
# 使用->返回的結(jié)果是帶引號的
select '{"nickname": "goodspeed", "avatar": "avatar_url"}'::json->'nickname' as nickname;
# 使用->>返回結(jié)果不帶引號
select '{"nickname": "goodspeed", "avatar": "avatar_url", "tags": ["python", "golang", "db"]}'::json->>'nickname' as nickname;
復(fù)雜查詢
# {tags,0}代表查詢key=‘tags',且value為數(shù)組中數(shù)組的第一個元素
select '{"nickname": "gs", "avatar": "avatar_url", "tags": ["python", "golang", "db"]}'::json#>'{tags,0}' as tag;
# {aa,b,0}代表查詢key=‘a(chǎn)a',對應(yīng)的value中,key=‘b'的value中,數(shù)組的第一個元素
select '{"nickname": "gs", "avatar": "avatar_url", "tags": ["python", "golang", "db"], "aa":{"b": [{"c": 1}]}}'::jsonb#>>'{aa,b,0}';
二、修改
修改
jsonb_set(原數(shù)據(jù), 需要更改的位置, 替換的值,是否不存在時新增),
select jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f1}','[2,3,4]', false);
到此這篇關(guān)于postgresql的jsonb數(shù)據(jù)查詢和修改的文章就介紹到這了,更多相關(guān)postgresql jsonb數(shù)據(jù)查詢和修改內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
postgresql如何找到表中重復(fù)數(shù)據(jù)的行并刪除
這篇文章主要介紹了postgresql如何找到表中重復(fù)數(shù)據(jù)的行并刪除問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
PostgreSQL13基于流復(fù)制搭建后備服務(wù)器的方法
這篇文章主要介紹了PostgreSQL13基于流復(fù)制搭建后備服務(wù)器,后備服務(wù)器作為主服務(wù)器的數(shù)據(jù)備份,可以保障數(shù)據(jù)不丟,而且在主服務(wù)器發(fā)生故障后可以提升為主服務(wù)器繼續(xù)提供服務(wù)。需要的朋友可以參考下2022-01-01
PostgreSQL 實(shí)現(xiàn)定時job執(zhí)行(pgAgent)
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)定時job執(zhí)行(pgAgent),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PGSQL查詢最近N天的數(shù)據(jù)及SQL語句實(shí)現(xiàn)替換字段內(nèi)容
PostgreSQL提供了WITH語句,允許你構(gòu)造用于查詢的輔助語句,下面這篇文章主要給大家介紹了關(guān)于PGSQL查詢最近N天的數(shù)據(jù)及SQL語句實(shí)現(xiàn)替換字段內(nèi)容的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
PostgreSQL使用JSONB存儲和查詢復(fù)雜的數(shù)據(jù)結(jié)構(gòu)
在PostgreSQL中,JSONB是一種二進(jìn)制格式的JSON數(shù)據(jù)類型,它允許你在數(shù)據(jù)庫中存儲和查詢復(fù)雜的JSON數(shù)據(jù)結(jié)構(gòu),本文給大家介紹了如何使用JSONB類型在PostgreSQL中存儲和查詢復(fù)雜的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2024-04-04
Debian中PostgreSQL數(shù)據(jù)庫安裝配置實(shí)例
這篇文章主要介紹了Debian中PostgreSQL數(shù)據(jù)庫安裝配置實(shí)例,一個簡明教程,需要的朋友可以參考下2014-06-06
Postgresql數(shù)據(jù)庫character?varying和character的區(qū)別說明
這篇文章主要介紹了Postgresql數(shù)據(jù)庫character?varying和character的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
CentOS 7下安裝PostgreSQL 9.6的教程分享
PostgreSQL在我心目中的地位要遠(yuǎn)遠(yuǎn)高于MySQL,雖然流行對比MySQL低很對,但是功能性一致走在MySQL的前面。下面這篇文章主要介紹了CentOS 7下安裝PostgreSQL數(shù)據(jù)庫的方法,需要的朋友可以參考借鑒,一起來看看吧。2017-02-02
關(guān)于向PostgreSQL數(shù)據(jù)庫插入Date類型數(shù)據(jù)報(bào)錯問題解決方案
本文給大家介紹在將數(shù)據(jù)庫從Oracle改為PostgreSQL時遇到的日期類型插入錯誤,通過使用PostgreSQL的特定語法和更改動態(tài)SQL語句解決了問題,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-12-12

