这篇文章主要介绍了postgresql的jsonb数据查询和修改的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
什么是jsonb
由PostgreSQL文档定义的数据类型json和jsonb几乎相同;关键的区别在于json数据存储为JSON输入文本的精确副本,而jsonb以分解的二进制形式存储数据;也就是说,不是ASCII / UTF-8字符串,而是二进制代码。
本文主要讲的是如何随心所欲的查询和修改postgresql中jsonb格式的数据
一、查询
简单查询
# 存储的是key-value格式的数据,通过指定的key获取对应的值
# 使用->返回的结果是带引号的
select '{"nickname": "goodspeed", "avatar": "avatar_url"}'::json->'nickname' as nickname;
# 使用->>返回结果不带引号
select '{"nickname": "goodspeed", "avatar": "avatar_url", "tags": ["python", "golang", "db"]}'::json->>'nickname' as nickname;
复杂查询
# {tags,0}代表查询key=‘tags',且value为数组中数组的第一个元素
select '{"nickname": "gs", "avatar": "avatar_url", "tags": ["python", "golang", "db"]}'::json#>'{tags,0}' as tag;
# {aa,b,0}代表查询key=‘aa',对应的value中,key=‘b'的value中,数组的第一个元素
select '{"nickname": "gs", "avatar": "avatar_url", "tags": ["python", "golang", "db"], "aa":{"b": [{"c": 1}]}}'::jsonb#>>'{aa,b,0}';
二、修改
修改
jsonb_set(原数据, 需要更改的位置, 替换的值,是否不存在时新增),
select jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f1}','[2,3,4]', false);
到此这篇关于postgresql的jsonb数据查询和修改的文章就介绍到这了,更多相关postgresql jsonb数据查询和修改内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
沃梦达教程
本文标题为:postgresql的jsonb数据查询和修改的方法
基础教程推荐
猜你喜欢
- Redis如何实现延迟队列 2023-07-13
- python中pandas库的iloc函数用法解析 2023-07-28
- 如何将excel表格数据导入postgresql数据库 2023-07-20
- Sql Server Management Studio连接Mysql的实现步骤 2023-07-29
- 关于MySQL中explain工具的使用 2023-07-27
- SQLServer 清理日志的实现 2023-07-29
- 【Redis】数据持久化 2023-09-12
- Mysql主从三种复制模式(异步复制,半同步复制,组复 2022-09-01
- Mysql查询所有表和字段信息的方法 2023-07-26
- Python常见库matplotlib学习笔记之多个子图绘图 2023-07-27