2. 获取JSON的单个属性

发布时间:2025-06-24 19:56:51  作者:北方职教升学中心  阅读量:361


2. 获取JSON的单个属性。

五、这两种类型的主要区别在于数据存储格式,JSONB 使用二进制格式。以上基本上是暂时了解的内容,欢迎交流斧头和xff01;!!无法获得元素。不保留。

第二个 -> 运算符返回属性中的第一个 1 #xff08个数组元素;数组下标从 0 开始)。

以属性为条件直接查询:不能根据属性进行匹配,

 如果要匹配,

1. 删除整个 JSON 字段数据可以简单地设置为 NULL,例如:

2. 删除 JSON 可以使用字段中的某个属性 - 计算符,例如:

当没有元素属性时,JSONB。 通过一系列输入可以创建JSON 对象。

使用 UPDATE 语句更新 JSON ࿰字段c;可以通过 || 运算符将新键增加到现有键 JSON 数据。

2. jsonb_insert 方法。更新 JSON 字段数据。

利用 jsonb_insert 方法,例如:

3. jsonb_set 方法。

PostgreSQL 支持将 JSON 将字段转换为数据行格式。

四、

查询attr1下的code属性,

运算符 -> 相应的数据可以通过指定节点的键获取。

看完这些方法,例如:

JSONB格式没有顺序。

4. 基于JSON数据的过滤。保留按钮的顺序。

以下内容主要用于 JSONB #xfff00数据类型c;但大部分功能也可以使用 JSON 数据类型。

两种数据类型的区别:

功能。字符串原始存储。
保留重复按钮。分析后的二进制。
存储格式。如果您想以字符串的形式返回节点中的数据值,可使用运算符 ->>。不支持。不保留。存储数据,更容易处理。

PostgreSQL 优先推荐 JSONB 数据类型。

PostgreSQL 提供了支持 JSON 全文索引的字段,可优化查询性能。

  • row_to_json。

    CREATE INDEX index_product_att1 ON product USING GIN(attr1);

    JSONB类型在attr1时#xff0c;atttr2是JSON类型,创建索引会错误,这种差异对应于上表。
  • 不保留。 JSONB。例如,jsonb_each 函数可以将每个键转换为记录:

  • 类似的函数还有:

  • json_each 以及 json_each_text。则需要使用以下方法:

    需要注意的是->json格式,-->是字符,要注意匹配󿀌如果元素属性是数字,转换后需要对比:

    5. JSON 转换为数据行。

    3. 插入格式化方法:

    jsonb_build_object、

  • 由于不同的存储格式,JSONB 输入稍慢一点(#xff09需要转换;,但查询速度要快得多。

    第一个不能在这里使用“” ->>",转换成字符串后,这种索引的类型是 GIN(#xff09通用倒排索引;,通常用于搜索引擎。支持。

    具体操作可参考:详细说明PostgreSQL操作json/jsonb方法_PostgreSQL_脚本之家。保留。

    2. 获取JSON的单个属性。json_build_object。保留空白符。

    • PostgreSQL 支持将 JSON 将字段转换为数据行格式。

      2.查询JSON字段和属性(下面是JSONB格式)

       1. 查询JSON字段:

      product=# select * from product where id =3 ; id |   name   |             attr1              |              attr2-#43;----------+--------------------------------+----------------------------------  3 | 农夫山泉 | {"code": "100015", "price": 3} | {"code" : "100015", "price" : 3}(1 row)product=# select name, attr1, attr2 from product where id =3 ;   name   |             attr1              |              attr2-#43;--------------------------------+---------------------------------- 农夫山泉 | {"code": "100015", "price": 3} | {"code" : "100015", "price" : 3}(1 row)。
      CREATE TABLE product (  id INTEGER NOT NULL PRIMARY KEY,  name VARCHAR(100),  attr1 JSONB,  attr2 JSON);

      1. 插入数据:

      INSERT INTO productVALUES	( 1, '阿莫西林', 	'{		"code": "100011",		"price": 18,		"uom": "盒",		"specification": "10粒/盒",		"price": 18.00	}',	'{		"code": "100011",		"price": 18,		"uom": "盒",		"specification": "10粒/盒",		"price": 18.00	}'	);	INSERT INTO productVALUES	( 2, '阿司匹林', 	'{		"code": "100013",		"price": 28,		"uom": "盒",		"specification": "20粒/盒",		"price": 28.00	}',	'{		"code": "100013",		"price": 28,		"uom": "盒",		"specification": "20粒/盒",		"price": 28.00	}'	);

       2. 查询数据:

      从红框中的内容可以看出两种类型的区别:JSON保留原格式,JSONB不保留,具体见上表。注意。

      1. || 运算符。

      6. 获取所有JSON的key。

      7. 判断JSON属性是否存在。

      jsonb_array_elements 以及 jsonb_array_elements_text。

      运算符 #> 以及 #>> 可通过指定 JSON 接收嵌套属性的节点路径,路径可以包含键名或数组元素下标,返回类型分别为 JSON 和字符串。

      INSERT INTO productVALUES	( 3, '农山泉', jsonb_build_object ( 'code', '100015', 'price', 3 ),                     json_build_object ( 'code', '100015', 'price', 3 ) );

      其它常用的结构 JSON 数据函数如下:

      • to_json 以及 to_jsonb。

      PostgreSQL 还提供了一些判断 JSON 属性是否存在运算符,例如 ? 运算符。保留。

      三、新增:

       。

      PostgreSQL 提供了两种 JSON #xff1的数据类型a;JSON。还是觉得直接输入简单方便,也许我没有理解本质。。JSON。以及。例如:

      如果没有key,

    • array_to_json。这种方法返回的数据仍然是 JSON 类型,包括使用双引号。全文索引。

    json_array_elements 以及 json_array_elements_text。保留。全文索引。

  • json_object 以及 jsonb_object。删除 JSON 字段数据。

    如:

    如果查询的 JSON 节点不存在,将返回空值:

    3. 获取JSON数组属性。,报错不会删除。

    如果要更新现有键的值,可以使用 jsonb_set 函数。

  • json_build_array 以及 jsonb_build_array。

    I.创建并插入数据。