这篇文章主要介绍了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数据查询和修改的方法
猜你喜欢
- Numpy中如何创建矩阵并等间隔抽取数据 2023-07-28
- 基于Python制作一个简单的文章搜索工具 2023-07-28
- MySQL8.0.28安装教程详细图解(windows 64位) 2023-07-26
- redis清除数据 2023-09-13
- 搭建单机Redis缓存服务的实现 2023-07-13
- SQLSERVER调用C#的代码实现 2023-07-29
- SQL Server 2022 AlwaysOn新特性之包含可用性组详解 2023-07-29
- Mongodb启动报错完美解决方案:about to fork child process,waiting until server is ready for connections. 2023-07-16
- 在阿里云CentOS 6.8上安装Redis 2023-09-12
- Oracle 删除大量表记录操作分析总结 2023-07-23