PostgreSQL

PostgreSQL JSONB Veri Türü ve İşlevleri

PostgreSQL JSONB Veri Türü ve İşlevleri

9'da olduğu gibi.2 Sürüm, PostgreSQL oldukça basit bir JSON veri türü ekledi. Kapağın altında, JSON veri türü metindir ve düzenin XML'e benzer JSON girişinin doğru olup olmadığı kontrol edilir. Sonunda ekip, PostgreSQL'de ihtiyaç duyulan JSON işleme ve özel arama hacminin, metinsel bir veri türü üzerinde zorlamanın zor veya mantıklı olacağını buldu. Bu nedenle, eksiksiz bir operatör ve yöntem yelpazesiyle JSON veri türünün ikili bir temsilini oluşturdular. İşte JSONB veri türü geliyor. JSONB veri tipi, tam işleme, indeksleme ve arama kabiliyetine sahip gerçekten çok yönlü bir ikili depolama düzenidir. Sonuç olarak, JSON bilgilerini anahtar başına yalnızca bir değere sahip olan ve ek boşluk veya depresyonu yok sayan bir iç düzende önceden işler veya girinti diyebilirsiniz. Bu kılavuzda, PostgreSQL'deki JSONB veri formuyla nasıl etkileşime gireceğinizi ve ayrıca JSONB verileriyle ilgilenmek için bazı kullanışlı operatörler ve yöntemler öğreneceksiniz.

Büyük olasılıkla ihtiyaç duyacağınız ve kullanmayı seçeceğiniz veri türü, yalnızca geriye dönük uyumluluk için kullanılan JSON erken sürümü değil, JSONB'dir. Bu nedenle, PostgreSQL komut kabuğunu açın ve sunucunun adlarını, veritabanını, bağlantı noktasını ve kullanıcı adını sağlayın.

Örnek 01:

İşte iki veri türü arasındaki varyasyonların kısa bir örneği. Sütunlarından birinin 'JSON' veri türü olması gereken bir 'New' tablosu oluşturmamız gerekiyor:

>> TABLO OLUŞTUR Yeni(ID seri BİRİNCİL ANAHTAR, Val JSON);

'Val' sütununa bazı değerler ekleyin.

>> Yeni(Değer) DEĞERLERİNE EKLE ('[1, 2, 3, 4]'), ('[10, 11, 12, 13]'), ('“anahtar”: “değer”') ;

'@>' Operatörünün Kullanımı

'Ekstra' sütun listesinde tamsayılı girdileri aramaya çalıştığımızda, her zaman aşağıda eklendiği gibi bir hata mesajı alıyoruz.

>> SEÇ * YENİ NEREDEN Val @> '11';

Evet. JSON yalnızca metindir ve çok verimli değildir ve operatör yapılandırması içermez. İçeriğin jsonb olarak değiştirilmesine izin verin.

>> ALTER TABLE Yeni ALTER KOLON Val TİPİ JSONB;

Şimdi aynı sorguyu kabukta yürütün ve sonuç, dizisinde aşağıda verildiği gibi '11' sayısına sahip bir satır gösterir.

>> SEÇ * YENİ NEREDEN Val @> '11';

Örnek 02:

PostgreSQL JSONB veri tipi için kullanılabilecek yöntemler ve operatörler hakkında konuşmaya başlayana kadar illüstrasyonlarımızda kullanılacak bir tablo 'Çanta' yapalım. Sütunlarından biri, e.g. 'Marka', aşağıdaki gibi 'JSONB' veri türü olmalıdır:

>> TABLO ÇANTASI OLUŞTUR(ID seri BİRİNCİL ANAHTAR, Marka JSONB NULL DEĞİL);

PostgreSQL tablosu 'Bag'e bilgi eklemek için aşağıdaki SQL INSERT bildirimini kullanacağız:

>> Çanta(Marka) DEĞERLERİNE EKLE ('"isim": "Gucci", "renk": ["kırmızı", "siyah"], "fiyat": 10000,  "satıldı": doğru,]') , ('"name": "Allure", "color": ["red", "Grey"], "fiyat": 85000,  "satıldı": yanlış,]'), ('"ad": "Kidza", "renk": ["siyah", "beyaz"], "fiyat": 75000,  "satıldı": doğru,]');

Verilerin sözlük şeklinde eklendiğini görebilirsiniz, e.g., anahtarlar ve değerler.

Bu tablonun 'Çanta' öğeleri, aşağıda görüldüğü gibi bir SELECT cümlesi kullanılarak görülebilir:

>> SEÇİM * ÇANTADAN;

'->' Operatörünün Kullanımı

Sorgumuzdaki '->' operatörünü kullanarak 'ad' anahtarı ile 'Marka' sütunundaki değerleri arayalım.  "Marka" sütunundan "ad" anahtarının tüm kayıtlarını getirecektir. Çıktı, yeni 'marka' sütununda gösterilecektir. Nihai çıktı aşağıda eklendiği gibi görünecektir. Gördüğünüz gibi, üç değerimiz var: 'isim' anahtarı için 'Gucci, Allure, kidza'.

>> Marka SEÇ -> 'isim' MARKA OLARAK Çantadan;

WHERE Cümlesini Kullanan '->' Operatörünün Kullanımı

Tüm bu satırları, 'Brand' sütununun 'satıldı' anahtarı için 'true' değerine sahip olduğu 'Bag' tablosundan alalım. Bu seçimin sorgusu aşağıdaki gibidir:

>> SEÇİM * ÇANTADAN NEREDE  Marka -> 'satıldı' = 'true';

Görüyorsunuz, sorgu sadece 'Çanta' tablosundan iki satır getirdi çünkü 'satıldı' anahtarı için 'true' değerine sahip sadece iki satır var.

PostgreSQL JSONB İşlevleri:

JSONB bilgileriyle, kullanılabilecek çeşitli yerleşik yöntemler var gibi görünüyor. Gelin onlara birer birer göz atalım.

JSONB Her İşlev:

JSONB Her işlev, verileri alır ve anahtar_değer çiftine dönüştürür. Değerleri verdiğimiz jsonb_each yönteminin aşağıdaki sorgusunu göz önünde bulundurun. En üst düzey JSON verileri, sonuçta bir dizi anahtar/değer kombinasyonuna genişletilir. Aşağıda gösterildiği gibi iki anahtar/değer çiftimiz var.

>> SELECT jsonb_each('"name": "Allure", "satıldı": "true"'::jsonb );

JSONB Nesne Tuşları İşlevi:

Şimdi Jsonb_object_keys fonksiyonuna bir göz atacağız. Bu işlev verileri alır ve içindeki anahtar değerleri ayırır ve tanımlar. jsonb_object_keys yöntemini kullandığımız ve bazı değerler sağladığımız aşağıdaki SELECT sorgusunu deneyin. Bu yöntem, aşağıda gösterildiği gibi yalnızca belirli veriler için JSON en üst düzey belgesinin anahtarlarını döndürür.

>> SELECT jsonb_object_keys('"name": "kidza", "sold": "true"'::jsonb );

JSONB Yolu Çıkarma İşlevi:

JSONB Yolu Çıkarma işlevi, sonuçtaki değeri göstermek için yolu alır. JSONB jsonb_extract_path yönteminin yolu olarak 'marka' sağladığımız komut kabuğunda aşağıdaki sorguyu deneyin. Aşağıdaki resimde sunulan çıktıdan, 'Gucci'nin 'name' yoluna döndürülen bir değer olduğunu görebilirsiniz.

>> SELECT jsonb_extract_path('"name": "Gucci", "satıldı": true'::jsonb, 'isim');

JSONB Güzel İşlevi:

JSON dosyalarınızı okunması kolay bir düzende görüntülemek istiyorsanız, JSONB Pretty işlevi en iyi seçenektir. Aşağıdaki sorguyu deneyin, basit bir çıktı alacaksınız.

>> SELECT jsonb_pretty('"name": "Allure", "satıldı": false'::jsonb);

Sonuç:

JSONB bilgilerini PostgreSQL veritabanlarında sakladığınızda, mümkün olan en iyi sonucu elde edersiniz: ilişkisel bir veritabanının avantajlarıyla birleştirilmiş NoSQL veritabanının basitliği ve güvenilirliği. Çok sayıda operatör ve yöntem kullanarak PostgreSQL JSONB'nin nasıl kullanılacağını gösterdik. Örneklerimizi referans olarak kullanarak JSONB verileriyle çalışabileceksiniz.

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...