欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

教你在PostgreSql中使用JSON字段的方法

 更新時(shí)間:2022年11月29日 17:04:13   作者:夜郎king  
這篇文章主要介紹了干貨教你在PostgreSql中使用JSON字段,通過(guò)本文可掌握在pg數(shù)據(jù)庫(kù)中如何正確使用json字段,如何進(jìn)行數(shù)據(jù)查詢,在where子查詢中如何使用,以及對(duì)json值進(jìn)行聚合查詢使用,需要的朋友可以參考下

通過(guò)本文可掌握在pg數(shù)據(jù)庫(kù)中如何正確使用json字段,如何進(jìn)行數(shù)據(jù)查詢,在where子查詢中如何使用,以及對(duì)json值進(jìn)行聚合查詢使用.

概述

JSON 代表 JavaScript Object Notation。JSON是開(kāi)放的標(biāo)準(zhǔn)格式,由key-value對(duì)組成。JSON的主要用于在服務(wù)器與web應(yīng)用之間傳輸數(shù)據(jù)。新建表如下:

CREATE TABLE "public"."biz_orders" (  "ID" int8 NOT NULL DEFAULT nextval('"biz_orders_ID_seq"'::regclass),
  "info" json NOT NULL
);

表初始化語(yǔ)句:

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":"蘋(píng)果","qty":18}}');
INSERT INTO "biz_orders"("ID", "info") VALUES (4, '{"name":"趙一","items":{"product":"香蕉","qty":20}}');

使用

1、簡(jiǎn)單查詢

select * from biz_orders;

2、查詢使用->操作符,查詢json中所有顧客作為鍵

SELECT info -> 'name' AS customer FROM biz_orders;

3、下面使用->>操作獲取所有顧客姓名作為值

SELECT info ->> 'name' AS customer FROM biz_orders;

4、根據(jù)json對(duì)象的key查詢值

SELECT
   info -> 'items' ->> 'product' as product
FROM
   biz_orders
ORDER BY
   product;

5、where查詢中使用json字段

SELECT
   info ->> 'name' AS customer
FROM
   biz_orders
WHERE
   info -> 'items' ->> 'product' = '辣條'

6、case 查詢???????

SELECT
   info ->> 'name' AS customer,
   info -> 'items' ->> 'product' AS product
FROM
   biz_orders
WHERE
   CAST (
      info -> 'items' ->> 'qty' AS INTEGER
   ) = 6

7、聚合函數(shù)???????

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、類(lèi)型查詢???????

SELECT
  json_typeof ( info -> 'items' -> 'qty' ) 
FROM
  biz_orders;

總結(jié)

通過(guò)以上例子,知道在pg數(shù)據(jù)庫(kù)中如何存儲(chǔ)json數(shù)據(jù),并且掌握基本的查詢,在查詢條件中使用json,在聚合函數(shù)中使用。雖然,關(guān)系型數(shù)據(jù)庫(kù)的強(qiáng)項(xiàng)不是在于json處理,而MongoDb或者Redis等NoSQL更適合做這類(lèi)處理,但是在不引入一個(gè)新數(shù)據(jù)存儲(chǔ)的情況下,利用現(xiàn)有架構(gòu)解決生產(chǎn)問(wèn)題。隨著pg甚至mysql不斷向前發(fā)展,相信未來(lái)對(duì)于json等數(shù)據(jù)支持會(huì)越來(lái)越好,性能也會(huì)越來(lái)越高。

到此這篇關(guān)于干貨教你在PostgreSql中使用JSON字段的文章就介紹到這了,更多相關(guān)PostgreSql使用JSON字段內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL三種自增列sequence,serial,identity的用法區(qū)別

    PostgreSQL三種自增列sequence,serial,identity的用法區(qū)別

    這篇文章主要介紹了PostgreSQL三種自增列sequence,serial,identity的用法區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • PostgreSQL怎么創(chuàng)建分區(qū)表詳解

    PostgreSQL怎么創(chuàng)建分區(qū)表詳解

    數(shù)據(jù)庫(kù)表分區(qū)把一個(gè)大的物理表分成若干個(gè)小的物理表,并使得這些小物理表在邏輯上可以被當(dāng)成一張表來(lái)使用,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL怎么創(chuàng)建分區(qū)表的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 基于PostgreSql 別名區(qū)分大小寫(xiě)的問(wèn)題

    基于PostgreSql 別名區(qū)分大小寫(xiě)的問(wèn)題

    這篇文章主要介紹了基于PostgreSql 別名區(qū)分大小寫(xiě)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • postgresql 實(shí)現(xiàn)字符串分割字段轉(zhuǎn)列表查詢

    postgresql 實(shí)現(xiàn)字符串分割字段轉(zhuǎn)列表查詢

    這篇文章主要介紹了postgresql 實(shí)現(xiàn)字符串分割字段轉(zhuǎn)列表查詢,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • PostgreSQL死鎖了怎么辦及處理方法

    PostgreSQL死鎖了怎么辦及處理方法

    這篇文章主要介紹了PostgreSQL死鎖了怎么辦?本文給大家講解了死鎖原因及解決方法,介紹l避免死鎖的實(shí)戰(zhàn)建議,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • 使用PostGIS完成兩點(diǎn)間的河流軌跡及流經(jīng)長(zhǎng)度的計(jì)算(推薦)

    使用PostGIS完成兩點(diǎn)間的河流軌跡及流經(jīng)長(zhǎng)度的計(jì)算(推薦)

    這篇文章主要介紹了使用PostGIS完成兩點(diǎn)間的河流軌跡及流經(jīng)長(zhǎng)度的計(jì)算,使用POSTGIS及其擴(kuò)展pgrouting計(jì)算給定兩點(diǎn)間的河流流經(jīng)區(qū)域和河流長(zhǎng)度,需要的朋友可以參考下
    2022-01-01
  • PostgreSQL拆分字符串的三種方式

    PostgreSQL拆分字符串的三種方式

    這篇文章給大家介紹了PostgreSQL拆分字符串的三種方式,字符串轉(zhuǎn)為數(shù)組,字符串轉(zhuǎn)為列表和字符串轉(zhuǎn)為數(shù)據(jù)項(xiàng),并通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • PostgreSQL與MySQL優(yōu)劣勢(shì)比較淺談

    PostgreSQL與MySQL優(yōu)劣勢(shì)比較淺談

    這篇文章主要詳細(xì)介紹了PostgreSQL與MySQL有哪些優(yōu)劣勢(shì),文中介紹的非常詳細(xì),對(duì)于學(xué)習(xí)有一定的幫助,感興趣的小伙伴可以參考一下
    2023-04-04
  • 安全高效的PostgreSQL數(shù)據(jù)庫(kù)遷移解決方案

    安全高效的PostgreSQL數(shù)據(jù)庫(kù)遷移解決方案

    PostgreSQL數(shù)據(jù)庫(kù)是一款高度可擴(kuò)展的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng),支持復(fù)雜的查詢、事務(wù)完整性和多種數(shù)據(jù)類(lèi)型由于各種業(yè)務(wù)需求,企業(yè)常常需要將數(shù)據(jù)在不同的云平臺(tái)或私有環(huán)境之間遷移,所以本文小編給大家介紹了安全高效的PostgreSQL數(shù)據(jù)庫(kù)遷移解決方案,需要的朋友可以參考下
    2023-11-11
  • 深入解讀PostgreSQL中的序列及其相關(guān)函數(shù)的用法

    深入解讀PostgreSQL中的序列及其相關(guān)函數(shù)的用法

    這篇文章主要介紹了PostgreSQL中的序列及其相關(guān)函數(shù)的用法,包括序列的更新和刪除等重要知識(shí),需要的朋友可以參考下
    2016-01-01

最新評(píng)論