提问人:abdul sattar 提问时间:9/4/2023 最后编辑:James Zabdul sattar 更新时间:9/4/2023 访问量:225
在 postgresql 中制作嵌套表
Making nested table in postgresql
问:
我有一个JSON数据集,它是数组格式。我必须在Postgres-SQL中创建一个表,然后将数据存储到其中。我从来没有处理过这种复杂的数据。我试图弄清楚哪一列属于哪些值。如何在PostgreSQL中制作嵌套表并将数据加载到其中?
我搜索了一下,来到 Postgres SQL 不支持某些网站的嵌套表。
答:
0赞
Kihara
9/4/2023
#1
虽然 PostgreSQL 不像其他一些数据库那样具有原生的“嵌套表”结构,但您可以使用 JSON 或 JSONB 数据类型有效地处理分层或嵌套数据。JSON 和 JSONB 之间的选择取决于是需要保留原始 JSON 结构(使用 JSON),还是要以更高效的二进制格式存储它(使用 JSONB)。使用 json 或 jsonb 的好处是:
- 处理速度快得多,并且可以进行索引,这可能是一个很大的 优势。
- 将实体属性值 (EAV) 表替换为 jsonb 列,其中 可以查询、索引和联接,从而提高速度。
注意:如果您的数据包含与图相关的关系,您可以使用 Apache AGE,它允许您通过提供图数据库扩展在 PostgreSQL 的关系模型中处理图相关关系。通过使用表对数据进行建模并利用 AGE 的图形查询功能,您可以在 PostgreSQL 中有效地管理和查询图形数据。请务必参考 Apache AGE 文档,了解有关其特定功能和查询语法的更多详细信息。
0赞
Abdul Aziz
9/4/2023
#2
你能做的最好的事情就是在 postgres 上使用 jsonb。类似的东西——
CREATE TABLE awayTeam (
data jsonb
);
您需要做的是创建一个具有您在图像中提到的结构的文件,然后创建包含对象的表。然后,您应该使用以下命令将该文件加载到表中.json
jsonb
.json
COPY awayTeam(data) FROM '/path/to/data.json';
对于查询,您可以执行
SELECT data->>'name' FROM awayTeam;
或者,在嵌套的情况下
SELECT data->'address'->>'city' FROM awayTeam;
您可以使用 和 运算符轻松查询和操作嵌套的 JSON 结构。->
->>
评论