专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > postgresql > 教程 > PostgreSQL教程 -》数据类型 -》jsonpath Type

PostgreSQL教程 -》数据类型 -》jsonpath Type

文章来源: 更新时间:2023/12/11 15:54:24

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

8.14.6. jsonpath Type

在PostgreSQL中,jsonpath类型实现支持SQL/JSON 路径语言以有效地查询 JSON 数据。 它提供了已解析的SQL/JSON路径表达式的二进制表示,该表达式指定路径引擎从JSON数据中检索的项,以便使用SQL/JSON查询函数进行进一步处理。

SQL/JSON 路径谓词和运算符的语义通常遵循 SQL。同时,为了提供使用 JSON 数据的最自然方法,SQL/JSON 路径语法使用一些 JavaScript 约定:

小数点 (.) 用于成员访问.

方括号 ([]) 用于数组访问.

与从 1 开始的常规 SQL 数组不同,SQL/JSON 数组是 0 相对的。

SQL/JSON路径表达式通常以SQL字符串文字形式写入SQL查询中,因此它必须用单引号括起来,并且值中需要的任何单引号都必须是双引号(参见 第 4.1.2.1 节)。 某些形式的路径表达式需要其中的字符串文本。这些嵌入的字符串文本遵循JavaScript/ECMAScript约定:它们必须用双引号括起来,并且反斜杠转义可以用于表示其他难以输入的字符。 特别是,在嵌入字符串文本中编写双引号的方法为\",并且要编写反斜杠本身,你必须写\\。 包括在JSON字符串中识别的其他特殊的反斜杠序列: \b, \f, \n, \r, \t, \v 对于各种 ASCII 控制字符,以及由它的4个六位数编码点标识标识的 Unicode 字符\uNNNN。 反斜杠语法还包括 JSON 不允许的两个案例: \xNN 对于只用两个十六进制数字编写的字符代码,以及\u{N...} 对于用 1 到 6 个十六进制数字编写的字符代码。

路径表达式由一系列路径元素组成,可以如下所示:

JSON基本类型的路径文字:Unicode文本、数字、真、假或空.

Path variables listed in 表 8.24中列出的路径变量。

表 8.25中列出的访问器运算符。

第 9.15.2.3 节中列出的jsonpath 运算符和方法。

括号,可用于提供筛选器表达式或定义路径计算的顺序。

有关使用jsonpath具有 SQL/JSON 查询函数的表达式的详细信息,参见第 9.15.2 节。

表 8.24. jsonpath 变量

变量 描述

$ 表示要查询的 JSON 文本的变量(context item).

$varname 命名变量。其值可以由参数vars多个JSON处理函数设置。 详细信息请参见 表 9.47 和它的注释。

@ 表示筛选器表达式中路径计算结果的变量。

表 8.25. jsonpath Accessors

访问器运算符 描述

. key

."$varname"

返回具有指定密钥的对象成员的成员访问器。 如果键名称是以 $ 开头的命名变量,或者不符合标识符的 JavaScript 规则,则必须将其包含在双引号中作为字符串文本。

.*

通配符成员访问器,该访问器返回位于当前对象顶层的所有成员的值。

.**

递归通配符成员访问器,它处理当前对象JSON层次结构的所有级别,并返回所有成员值,而不管它们的嵌套级别如何。 这是 PostgreSQL SQL/JSON 标准的扩展。

.**{level}

.**{start_level to end_level}

与 .** 相同,但在 JSON 层次结构的嵌套级别上具有筛选器。嵌套级别指定为整数。 零级别对应于当前对象。要访问最低嵌套级别,可以使用last关键字。 这是 PostgreSQL SQL/JSON 标准的扩展。

[subscript, ...]

数组元素访问器. subscript 能够以两种形式给出: index 或 start_index 到 end_index。 第一个窗体按其索引返回单个数组元素。第二个窗体按索引范围返回数组切片,包括对应于提供的元素start_indexend_index。

指定的index可以是整数,也可以是返回单个数值的表达式,该数值将自动转换为整数。 零索引对应于第一个数组元素。你还可以使用last 关键字来表示最后一个数组元素,这对于处理未知长度的数组很有用。

[*]

返回所有数组元素的通配符数组元素访问器。

[6] 对于这种目的,术语“值”包括数组元素,尽管 JSON 的术语有时 认为数组元素与对象内的值不同。

本文地址:http://www.cuug.com.cn/postgresql/jiaocheng/35853087344.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
地址:北京市海淀区田村山南路35号院17号楼
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1