干货!教你在PostgreSql中使用JSON字段
发布日期:2021-06-28 21:54:52
浏览次数:2
分类:技术文章
本文共 1810 字,大约阅读时间需要 6 分钟。
通过本文可掌握在pg数据库中如何正确使用json字段,如何进行数据查询,在where子查询中如何使用,以及对json值进行聚合查询使用.
概述
JSON 代表 JavaScript Object Notation。JSON是开放的标准格式,由key-value对组成。JSON的主要用于在服务器与web应用之间传输数据。新建表如下:
CREATE TABLE "public"."biz_orders" ( "ID" int8 NOT NULL DEFAULT nextval('"biz_orders_ID_seq"'::regclass), "info" json NOT NULL);
表初始化语句:
INSERT INTO "biz_orders"("ID", "info") VALUES (1, '{"name":"张三","items":{"product":"啤酒","qty":6}}');INSERT INTO "biz_orders"("ID", "info") VALUES (2, '{"name":"李四","items":{"product":"辣条","qty":8}}');INSERT INTO "biz_orders"("ID", "info") VALUES (3, '{"name":"王五","items":{"product":"苹果","qty":18}}');INSERT INTO "biz_orders"("ID", "info") VALUES (4, '{"name":"赵一","items":{"product":"香蕉","qty":20}}');
使用
1、简单查询
select * from biz_orders;
2、查询使用->操作符,查询json中所有顾客作为键
SELECT info -> 'name' AS customer FROM biz_orders;
3、下面使用->>操作获取所有顾客姓名作为值
SELECT info ->> 'name' AS customer FROM biz_orders;
4、根据json对象的key查询值
SELECT info -> 'items' ->> 'product' as productFROM biz_ordersORDER BY product;
5、where查询中使用json字段
SELECT info ->> 'name' AS customerFROM biz_ordersWHERE info -> 'items' ->> 'product' = '辣条'
6、case 查询
SELECT info ->> 'name' AS customer, info -> 'items' ->> 'product' AS productFROM biz_ordersWHERE CAST ( info -> 'items' ->> 'qty' AS INTEGER ) = 6
7、聚合函数
SELECT MIN( CAST ( info -> 'items' ->> 'qty' AS INTEGER ) ), MAX( CAST ( info -> 'items' ->> 'qty' AS INTEGER ) ), SUM( CAST ( info -> 'items' ->> 'qty' AS INTEGER ) ), AVG( CAST ( info -> 'items' ->> 'qty' AS INTEGER ) ) FROM biz_orders;
8、类型查询
SELECT json_typeof ( info -> 'items' -> 'qty' ) FROM biz_orders;
总结
通过以上例子,知道在pg数据库中如何存储json数据,并且掌握基本的查询,在查询条件中使用json,在聚合函数中使用。虽然,关系型数据库的强项不是在于json处理,而MongoDb或者Redis等NoSQL更适合做这类处理,但是在不引入一个新数据存储的情况下,利用现有架构解决生产问题。随着pg甚至mysql不断向前发展,相信未来对于json等数据支持会越来越好,性能也会越来越高。
转载地址:https://blog.csdn.net/yelangkingwuzuhu/article/details/109943014 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月09日 02时43分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Flink 流数据处理
2019-04-29
Flink集群搭建
2019-04-29
Flink流数据用例----Kafka:source与sink
2019-04-29
Flink的批流统一文档
2019-04-29
Hbase&&Hive
2019-04-29
Java 8 Stream
2019-04-29
HDFS简介与部署
2019-04-29
Java整合Hbase
2019-04-29
Hbase数据管理工具
2019-04-29
Phoenix简介
2019-04-29
Phoenix语法
2019-04-29
Hive简介
2019-04-29
spark sql
2019-04-29
spark简介
2019-04-29
Spark环境搭建
2019-04-29
漏桶算法与令牌桶算法
2019-04-29
Redis Cluster的问题
2019-04-29
Lua语法
2019-04-29
Redis Script
2019-04-29
AOF&RDB
2019-04-29