PostgreSQL教程

PostgreSQL JSON

在本节中,我们将了解 JSON数据的 PostgreSQL JSON数据类型,示例的工作原理类型和一些可访问的函数 json_each(),json_object_keys(),json_typeof()等
我们还可以看到 JSON运算符的示例 >带有 WHERE 子句,这有助于我们更灵活地处理 JSON数据值,并且我们将使用一些 汇总函数(SUM,MIN,AVG ,MAX)以获得JSON数据。

什么是PostgreSQL JSON数据类型?

PostgreSQL 是 JSON ,代表 JavaScript对象表示法。这是一种开放式标准格式,包含键值对。
使用JSON数据类型的主要目的是在 服务器网络之间传输数据应用。 JSON是 人类可读文本,与其他格式不同。
由于PostgreSQL的9.2版本支持 JSON数据类型,其中包含多个运算符和

PostgreSQL JSON数据类型的语法

PostgreSQL JSON数据类型的语法如下:
variable_name JSON

PostgreSQL JSON数据类型示例

让我们看一个示例示例,以了解 PostgreSQL JSON数据类型的工作原理。
我们将在CREATE命令的帮助下以 Purchase 的形式创建一个新表,并使用 INSERT命令。
要在 组织数据库中创建 购买 使用 CREATE 命令。
购买 表包含两列,例如 Purchase_id >和 Puchase_description。
在这里, Purchase_id 列是 主键列,该列对购买进行了分类 ,对于 Puchase_description 列,我们使用 JSON数据类型,该数据以JSON形式存储。
CREATE TABLE Purchase (
    Purchase_id serial NOT null PRIMARY KEY,
    Purchase_description json NOT null
);
输出
在执行上述命令时,我们将收到以下消息,该消息显示 购买 表已成功创建到 Organization 数据库中。
PostgreSQL JSON
之后成功创建 购买 表后,我们将在 INSERT 命令的帮助下将值插入JSON列。并且我们还确保数据采用有效的JSON格式。
下面的INSERT命令用于在 购买 表中插入新行。
INSERT INTO Purchase (Purchase_description)
VALUES('{ "purchaser": "Olivia Smith", "items": {"product": "iphone11 pro max","qty": 1}}');
输出
执行上述命令后,我们将获得以下消息窗口,该窗口显示值已成功插入 购买 表。
PostgreSQL JSON
以上命令表示 奥利维亚·史密斯(Olivia Smith)购买了 一部iPhone 11 pro max
现在,我们将借助以下命令在"购买"表中插入各行:
INSERT INTO Purchase (Purchase_description)
VALUES('{ "purchaser": "Maria Rodriguez", "items": {"product": "Hair shampoo","qty": 2}}'),
('{ "purchaser": "Thomas Jones", "items": {"product": "Belgium chocolate ice cream","qty": 7}}'),
('{ "purchaser": "Margaret Davis", "items": {"product": "Barbie doll","qty": 3}}'),
 ('{ "purchaser": "Elizabeth Brown", "items": {"product": "puzzle set","qty": 10}}');
输出
执行上述命令后,我们将获得以下消息窗口,该窗口显示多个值已成功插入 购买 表。
PostgreSQL JSON

检索JSON数据

创建并插入 购买 表的值之后,我们将使用 SELECT 命令以检索 购买 表的JSON数据:
SELECT Puchase_description 
FROM Purchase;
输出
成功执行以上命令后,我们将获得以下结果,该结果显示PostgreSQL以 购买 表:
PostgreSQL JSON

PostgreSQL运算符获取JSON数据

要获取JSON数据,PostgreSQL允许我们 两个本机运算符,如下所示
-> ->>
此处, ->运算符用于按键检索 JSON对象字段,以及 ->>运算符用于按文本检索 JSON对象字段
要获取所有JSON形式的购买者,我们将在 ->运算符中使用下面的命令:
SELECT Purchase_description -> 'purchaser' AS pruchaser
FROM Purchase;
输出
执行上述命令后,我们将获得以下结果,该结果以JSON形式显示所有 Purchaser 借助 ->运算符,如下所示:
PostgreSQL JSON
要检索所有文本形式的购买者,我们将使用 ->>运算符,如下面的命令所示:
SELECT Purchase_description ->> 'purchaser' AS pruchaser
FROM Purchase;
输出
成功执行上述命令后,我们将以 文本形式获取所有 购买者借助 ->>运算符在输出中,如下所示:
PostgreSQL JSON
如上所述, ->运算符检索一个 JSON对象并将其与 ->>运算符组合以返回
让我们看一个示例示例,以使我们更好地理解:
要销售所有产品,我们将使用以下命令:
SELECT Purchase_description-> 'items'->> 'product' as Product
FROM Purchase
ORDER BY Product;
输出
在执行上述命令时,我们将获得以下输出,其中第一个 Purchase_description->'items'将检索 JSON对象中的item。
第二个 Purchase_description->'items'->>'product'语句所有产品均采用文本形式。
PostgreSQL JSON

使用JSON数据聚合函数

在PostgreSQL中,我们具有以下聚合函数,例如 MAX,MIN,AVERAGE,SUM等
让我们看下面的示例示例:
在以下命令中,我们将尝试在 购买 表中获得 产品的最大数量,最小数量,平均数量和总数量
SELECT 
   MAX (CAST (Purchase_description-> 'items'->> 'qty' AS INTEGER)),
   MIN (CAST (Purchase_description-> 'items'->> 'qty' AS INTEGER)),
   AVG (CAST (Purchase_description-> 'items'->> 'qty' AS INTEGER)),
   SUM (CAST (Purchase_description-> 'items'->> 'qty' AS INTEGER))
FROM Purchase;
输出
成功执行以上命令后,我们将获得以下输出,其中显示所有购买的 产品的最大值,最小值,平均值和总计购买 表中的数量:
PostgreSQL JSON

在WHERE子句中使用JSON运算符

要过滤检索的行,我们将在JSON运算符 https://www.lidihuo.com/postgresql-where-clause"> WHERE 子句。
在下面的示例中,我们将确定谁购买了 <借助以下命令,strong> 比利时巧克力冰淇淋:
SELECT Purchase_description->> 'purchaser' AS Purchaser
FROM Purchase
WHERE Purchase_description-> 'items'->> 'product' = 'Belgium chocolate ice cream';
输出
执行上述命令后,我们将得到以下结果,该命令显示 Thomas Jones 购买了 比利时巧克力 购买表 中的冰淇淋
PostgreSQL JSON
在以下示例中,我们将使用以下命令来确定 一次购买了三种产品的:
SELECT Purchase_description ->> 'purchaser' AS Purchaser,
Purchase_description-> 'items'->> 'product' AS product
FROM Purchase
WHERE CAST ( Purchase_description-> 'items'->> 'qty' AS INTEGER) = 3
输出
在执行上述命令时,我们将得到以下结果,该结果显示 Margaret Davis 购买表。
PostgreSQL JSON
注意: 在上面的命令中,我们使用typecast将qty字段修改为INTEGER类型,并将其与两个关联。

PostgreSQL JSON函数

我们具有以下 JSON函数,例如 json_each(),json_object_keys( ),json_typeof()等,可以在PostgreSQL中使用,这有助于我们在使用 JSON数据类型时提高性能。
让我们逐一查看它们,以了解 PostgreSQL JSON函数的工作原理。
为此,我们采用了上面创建的上述 Purchase 表在本教程中,使用 CREATE 命令进入 组织数据库

json_object_keys函数

我们可以使用 json_object_keys()函数检索最外层JSON对象中的一组键。
例如: 在下面的comm中并且,我们使用 json_object_keys() 功能来获取 Purchase_description 中嵌套项目对象的所有 购买 表中的列。
SELECT json_object_keys (Purchase_description->'items')
FROM Purchase;
输出
执行上述命令后,我们将获得以下输出,该输出显示嵌套项目对象的所有 ,并带有 json_object_keys()函数的帮助。
PostgreSQL JSON

json_each函数

如果我们想将 最外层JSON对象增加到一组 键值对中,则可以使用 json_each()函数
让我们看一个示例示例来详细了解:
在下面的示例中,我们将尝试检索最外部的JSON对象放入 购买 Purchase_description 列中的一组键值对,如以下命令所示:
SELECT json_each (Purchase_description)
FROM Purchase;
输出
成功执行上述命令后,我们将获得以下输出,该输出将所有最外层的JSON对象显示为一组中的键值对。 购买表 中的 Purchase_description 列。
PostgreSQL JSON
如果我们需要检索一组以下内容,我们还可以使用 json_each_text()函数代替 json_each()函数键值对作为文本。
例如
在以下命令中,我们将使用 json_each_text()函数而不是 json_each()函数:
SELECT json_each_text(Purchase_description)
FROM Purchase;
输出
在执行上述命令时,与上述 json_each()函数相比,我们将获得类似的输出。
PostgreSQL JSON

json_typeof函数

要检索 将最大JSON值作为字符串,我们可以使用 json_typeof()函数。并且 json_typeof()可以接受 布尔值,数字,对象,空值,字符串和数组数据值。
例如: 在下面的命令中,我们将尝试获取 购买 表中存在的项目的数据类型:
SELECT json_typeof(Purchase_description->'items')
FROM Purchase;
输出
执行上述命令后,我们将得到以下结果,该结果将最外面的json值显示为字符串:
PostgreSQL JSON
以下命令用于检索嵌套项目的 qty字段数据类型 JSON对象
SELECT json_typeof(Purchase_description->'items'->'qty')
FROM Purchase;
输出
执行上述命令后,我们将获得以下输出,该输出显示嵌套项目JSON对象的qty字段数据类型。
PostgreSQL JSON

概述

PostgreSQL JSON数据类型部分,我们学习了以下主题:
PostgreSQL JSON数据类型用于存储指定列的JSON值。 我们在 WHERE子句使用了SON运算符来过滤指定表中的检索行。 我们还使用了平均值,总和,最小值,最大值之类的聚合函数来获取JSON数据。 我们使用了不同的J SON 函数,例如 json_each(),json_object_keys(),json_typeof()等,以增强和处理特定表中的 JSON 值。 我们使用JSON运算符为表的特定列更成功地获取JSON数据。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4