PostgreSQL

Tipe Data dan Fungsi PostgreSQL JSONB

Tipe Data dan Fungsi PostgreSQL JSONB

Seperti pada 9.2 Versi, PostgreSQL menambahkan tipe data JSON yang cukup mendasar. Di bawah sampul, jenis data JSON adalah teks, dengan pemeriksaan bahwa mungkin tata letaknya benar, masukan JSON mirip dengan XML. Akhirnya, tim menemukan bahwa volume pemrosesan JSON dan pencarian khusus yang diperlukan di PostgreSQL akan sulit atau rasional untuk diterapkan pada jenis data tekstual. Oleh karena itu, mereka membuat representasi biner dari tipe data JSON dengan rangkaian lengkap operator dan metode. Inilah tipe data JSONBB. Tipe data JSONB memang merupakan tata letak penyimpanan biner serbaguna dengan kemampuan pemrosesan, pengindeksan, dan pencarian yang lengkap. Akibatnya, ini memproses informasi JSON ke tata letak bagian dalam, yang hanya memiliki satu nilai per kunci dan mengabaikan spasi atau depresi tambahan, atau Anda dapat mengatakan lekukan. Dalam panduan ini, Anda akan mempelajari cara berinteraksi dengan formulir data JSONB di PostgreSQL, serta beberapa operator dan metode praktis untuk menangani data JSONB.

Jenis data yang kemungkinan besar Anda perlukan dan pilih untuk digunakan adalah JSONB, bukan versi awal JSON, yang hanya digunakan untuk kompatibilitas mundur. Jadi, buka shell perintah PostgreSQL dan berikan nama server, database, port, dan nama pengguna.

Contoh 01:

Berikut adalah ilustrasi singkat tentang variasi antara kedua tipe data tersebut. Kita harus membuat tabel 'New' dengan salah satu kolomnya harus bertipe data 'JSON' sebagai berikut:

>> CREATE TABLE New (ID serial PRIMARY KEY, Val JSON);

Masukkan beberapa nilai ke dalam kolom 'Val'.

>> INSERT INTO New(Val) NILAI ('[1, 2, 3, 4]'), ('[10, 11, 12, 13]'), ('“kunci”: “nilai”') ;

Penggunaan '@>' Operator

Setelah kami mencoba mencari entri dengan bilangan bulat di daftar kolom 'ekstra', kami selalu mendapatkan pesan kesalahan seperti yang ditambahkan di bawah ini.

>> PILIH * FROM WHERE Baru Val @> '11';

Iya. JSON hanyalah teks dan tidak terlalu efisien, dan tidak mengandung konfigurasi operator. Biarkan konten diubah menjadi jsonb.

>> ALTER TABLE New ALTER COLUMN Val TYPE JSONB;

Sekarang jalankan kueri yang sama di Shell, dan hasilnya menunjukkan satu baris memiliki nomor '11' dalam lariknya seperti yang diberikan di bawah ini.

>> PILIH * FROM WHERE Baru Val @> '11';

Contoh 02:

Mari kita membuat tabel 'Tas' untuk digunakan dalam ilustrasi kita sampai kita mulai berbicara tentang metode dan operator yang dapat digunakan untuk tipe data PostgreSQL JSONB. Salah satu kolomnya, e.g. 'Merek' harus berupa tipe data 'JSONB' sebagai berikut:

>> CREATE TABLE Bag(ID serial PRIMARY KEY, Merk JSONB NOT NULL);

Kami akan menggunakan deklarasi SQL INSERT berikut untuk menambahkan informasi ke tabel PostgreSQL 'Tas':

>> INSERT INTO Bag(Brand) VALUES ('"name": "Gucci", "color": ["red", "black"], "price": 10000,  "sold": true,]') , ('"name": "Allure", "color": ["red", "Grey"], "price": 85000,  "sold": false,]'), ('"name": "Kidza", "color": ["black", "white"], "price": 75000,  "sold": true,]');

Anda dapat melihat bahwa data telah ditambahkan dalam bentuk kamus, e.g., kunci dan nilai.

Elemen tabel 'Tas' ini dapat dilihat dengan menggunakan kalimat SELECT, seperti yang terlihat di bawah ini:

>> PILIH * DARI Tas;

Penggunaan '->' Operator

Mari kita cari nilai di kolom 'Merek' melalui kunci 'nama' menggunakan operator '->' di kueri kita.  Ini akan mengambil semua catatan 'nama' kunci  dari kolom 'Merek'. Output akan ditampilkan di kolom baru 'merek'. Output akhir akan muncul seperti yang ditambahkan di bawah ini. Seperti yang Anda lihat, kami memiliki tiga nilai: 'Gucci, Allure, kidza' untuk kunci 'nama'.

>> PILIH Merek -> 'nama' SEBAGAI merek DARI Tas;

Penggunaan Operator '->' Menggunakan Klausa WHERE

Mari kita ambil semua baris itu dari tabel 'Tas' di mana kolom 'Merek' memiliki nilai 'benar' untuk kuncinya 'terjual'. Query untuk seleksi ini adalah sebagai berikut:

>> SELECT * FROM Bag WHERE  Brand -> 'sold' = 'true';

Di sana Anda lihat, kueri mengambil dua baris hanya dari tabel 'Tas' karena hanya memiliki dua baris yang memiliki nilai 'benar' untuk kunci 'terjual'.

Fungsi PostgreSQL JSONB:

Dengan informasi JSONB, tampaknya ada berbagai metode bawaan yang dapat digunakan. Mari kita lihat mereka satu per satu.

JSONB Setiap Fungsi:

JSONB Setiap fungsi mengambil data dan mengubahnya menjadi pasangan nilai_kunci. Pertimbangkan kueri berikut dari metode jsonb_each di mana kami telah memberikan nilai. Data JSON tingkat tertinggi diperluas menjadi serangkaian kombinasi nilai kunci dalam hasil. Kami memiliki dua pasangan nilai kunci, seperti yang ditunjukkan di bawah ini.

>> SELECT jsonb_each('"name": "Allure", "sold": "true"'::jsonb );

Fungsi Tombol Objek JSONB:

Sekarang, kita akan melihat fungsi Jsonb_object_keys. Fungsi ini mengambil data, dan dengan sendirinya memisahkan dan mengidentifikasi nilai-nilai kunci di dalamnya. Coba kueri SELECT di bawah ini, di mana kami telah menggunakan metode jsonb_object_keys dan memberikan beberapa nilai. Metode ini hanya akan mengembalikan kunci dokumen tingkat tertinggi JSON untuk data tertentu, seperti yang ditunjukkan di bawah ini.

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

Fungsi Jalur Ekstrak JSONB:

Fungsi Jalur Ekstrak JSONB mengambil jalur untuk menunjukkan nilai dalam hasil. Coba kueri di bawah ini di shell perintah, di mana kami telah menyediakan 'merek' sebagai jalur ke metode jsonb_extract_path JSONB. Dari output yang disajikan pada gambar di bawah, Anda dapat melihat bahwa 'Gucci' adalah nilai yang dikembalikan ke jalur 'nama'.

>> SELECT jsonb_extract_path('"name": "Gucci", "sold": true'::jsonb, 'name');

Fungsi Cantik JSONB:

Jika Anda ingin menampilkan file JSON Anda dengan tata letak yang mudah dibaca, maka fungsi JSONB Pretty adalah pilihan terbaik. Coba kueri di bawah ini, dan Anda akan mendapatkan output sederhana.

>> SELECT jsonb_pretty('"name": "Allure", "sold": false'::jsonb);

Kesimpulan:

Saat Anda menyimpan informasi JSONB di database PostgreSQL, Anda mendapatkan hasil terbaik: kesederhanaan dan keandalan database NoSQL yang dikombinasikan dengan keunggulan database relasional. Memanfaatkan banyak operator dan metode, kami mendemonstrasikan cara menggunakan PostgreSQL JSONB. Anda akan mampu bekerja dengan data JSONB menggunakan ilustrasi kami sebagai referensi.

Cara mengunduh dan Memainkan Civilization VI Sid Meier di Linux
Pengenalan permainan Civilization 6 adalah konsep modern dari konsep klasik yang diperkenalkan dalam seri game Age of Empires. Idenya cukup sederhana;...
Cara Menginstal dan Memainkan Doom di Linux
Pengantar Doom Seri Doom berasal dari tahun 90-an setelah rilis Doom. Itu adalah hit instan dan sejak saat itu seri game telah menerima banyak penghar...
Vulkan untuk Pengguna Linux
Dengan setiap generasi baru kartu grafis, kami melihat pengembang game mendorong batas kesetiaan grafis dan selangkah lebih dekat ke fotorealisme. Tet...