这篇文章主要介绍了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常见库matplotlib学习笔记之画图中各个模块的含义及修改方法 2023-07-27
- Java程序员从笨鸟到菜鸟(五十三) 分布式之 Redis 2023-09-11
- redis 数据库 2023-09-13
- SQL Server如何设置用户只能访问特定数据库和访问特定表或视图 2023-07-29
- Mariadb数据库主从复制同步配置过程实例 2023-07-25
- oracle数据库排序后如何获取第一条数据 2023-07-24
- Windows10系统中Oracle完全卸载正确步骤 2023-07-24
- oracle19c卸载教程的超详细教程 2023-07-23
- Python安装第三方库的方法(pip/conda、easy_install、setup.py) 2023-07-28