PostgreSQL Json Veri Tipinde Tablo Oluşturma ve İnsert etmek

PostgreSQL Json Veri Tipinde Tablo Oluşturma ve İnsert etmek,PostgreSQL bir çok alanda zengin içerikleri ve geniş imkanları olduğu gibi veri tipleri konusunda da oldukça zengin içerikleri bulunmaktadır.

Bu yazımızda json verilerimizi tabloya insert edecek ve bu verileri okumayı öğreneceğiz.

İlk olarak afirması adında iki kolona sahip veri tipi oluşturalım.

CREATE TABLE afirma (
	id serial NOT NULL PRIMARY KEY,
	bilgi json NOT NULL
);

Tablomuzu oluşturduktan sonra aşağıdaki şekilde insertlerimizi yapalım.

INSERT INTO afirma (bilgi)
VALUES('{ "müşteri": "Ahmet aslan", "Satilanlar": {"Ürün": "su","fiyat": 1}}');

INSERT INTO afirma (bilgi)
VALUES('{ "müşteri": "Mehmet Lale", "Satilanlar": {"Ürün": "araba parfümü","fiyat": 25}}'),
      ('{ "müşteri": "ayse ata", "Satilanlar": {"Ürün": "Parfüm","fiyat": 123}}'),
      ('{ "müşteri": "Faruk ERDEM", "Satilanlar": {"Ürün": "Oyuncak","fiyat": 1232}}');

Verilerimizi insert ettikten sonra  tablomuzdaki verileri görelim.

Verilimizi düzgün şekilde insert edilmiş gözükmekte peki bu verileri nasıl çekeceğiz. Bunun için iki operatör kullanacağız.

-> json  verilerin keylerini döndürür.

->> json verilerin value değerlerini döndürür.

Bilgi kolonu içerinde bulunan verimizde ki Müsterileri  ve müşteriye satilan  ürünleri listeleyelim.

SELECT bilgi -> 'müşteri' AS müşteri
      ,bilgi -> 'Satilanlar' ->> 'Ürün' AS satilan_ürün
FROM afirma

Sorgu da koşul kullanmak isterseniz aşağıdaki komut gibi kullanmanız mümkün.

 

SELECT bilgi -> 'müşteri' AS müşteri
      ,bilgi -> 'Satilanlar' ->> 'Ürün' AS satilan_ürün
FROM afirma
where bilgi -> 'Satilanlar' ->> 'Ürün'= 'su'

Json veri tipinde oluşturulan kolonlara index atmak için aşağıdaki örnekten faydalanabilirsiniz.

 

CREATE INDEX afirma_IX2 ON afirma ((( bilgi -> 'Satilanlar' ->> 'Ürün')::text)); 

 

Loading