zoukankan      html  css  js  c++  java
  • 【PostgreSQL】存取jsonb

          从PostgreSQL 9.3开始,json就成了postgres里的一种数据类型,也就是和varchar、int一样,我们表里的一个字段的类型可以为json了。

          于此同时,postgres还提供了jsonbs格式,jsonb格式是json的二进制形式,二者的区别在于json写入快,读取慢,jsonb写入慢,读取快,但在操作上,二者是没有区别的。下面以jsonb为例。

    创建表

    假设我们要存储的json数据是这样的:

    {
       "id":ID
       "name":"名字",
       "年龄":年龄
    }

    建表语句如下:

    create table if not exists name_age{
        info jsonb
    }

    好了,这样就创建了一张表,里面只有一个 info 字段,下面开始进行CRUD操作。

    插入数据

    插入数据可以直接以json格式插入:

    insert into name_age values('{"id":1,"name":"小明","age":18}')

    在json里插入新的key值gender,如下:

    SELECT info || '{"gender":"男"}'::jsonb FROM name_age WHERE (info->>'id')::int4 = 1

    查询数据

    postgres里的查询需要用到查询符。比如说,我们要查询id为1的数据,语句如下:

    select info from name_age where info @>'{"id":1}'::jsonb

    用到了 @> 这个查询符,表明info当前这条记录里的顶层json中有没有id为1的key-value对;有的话则满足条件。

  • 相关阅读:
    .net core之上传文件的限制
    如何Telnet端口
    ES坑之logstash配置文件
    MySQL报错packets larger than max_allowed_packet are not allowed
    ES坑之安装
    ES坑之概述
    Git
    IDEA 搭建 maven(下)
    IDEA搭建maven(上)
    JDBC
  • 原文地址:https://www.cnblogs.com/pretty-ru/p/10881623.html
Copyright © 2011-2022 走看看