PostgreSQL

PostgreSQL JSONB Tip podataka i funkcije

PostgreSQL JSONB Tip podataka i funkcije

Kao i u 9.2 Verzija, PostgreSQL je dodao prilično osnovni JSON tip podataka. Ispod naslovnice, vrsta podataka JSON je tekst, uz provjeru je li izgled možda ispravan JSON unos sličan XML-u. Na kraju je tim otkrio da bi količinu JSON obrade i specijaliziranog pretraživanja potrebnih u PostgreSQL-u bilo teško ili racionalno provesti nad tekstualnom vrstom podataka. Stoga su stvorili binarni prikaz tipa podataka JSON s kompletnim nizom operatora i metoda. Evo tipa podataka JSONB. Tip podataka JSONB doista je svestrani binarni raspored pohrane s potpunom sposobnošću obrade, indeksiranja i pretraživanja. Kao rezultat toga, prethodno obrađuje JSON informacije u unutarnji izgled, koji ima samo jednu vrijednost po ključu i zanemaruje dodatni razmak ili udubljenje, ili možete reći uvlačenje. U ovom vodiču naučit ćete kako komunicirati s JSONB obrascem podataka u PostgreSQL-u, kao i neke korisne operatore i metode za rad s JSONB podacima.

Vrsta podataka koju ćete najvjerojatnije trebati i koju ćete odabrati je JSONB, a ne JSON rana verzija, koja se koristi samo za povratnu kompatibilnost. Dakle, otvorite naredbenu ljusku PostgreSQL i navedite imena poslužitelja, bazu podataka, port i korisničko ime.

Primjer 01:

Evo kratke ilustracije varijacija između dva tipa podataka. Moramo stvoriti tablicu "Novo" s jednim od stupaca koji mora biti "JSON" tip podataka kako slijedi:

>> STVORI TABELU Novo (ID serijski PRIMARNI KLJUČ, Val JSON);

Unesite neke vrijednosti u stupac 'Val'.

>> UMESTI U NOVE (Val) VRIJEDNOSTI ('[1, 2, 3, 4]'), ('[10, 11, 12, 13]'), ('"ključ": "vrijednost"') ;

Upotreba operatora '@>'

Jednom kada pokušamo potražiti unose s cijelim brojem na popisu stupaca 'extra', uvijek dobijemo poruku o pogrešci kao što je dodano u nastavku.

>> ODABERI * OD NOVOG GDJE Val @> '11';

Da. JSON je samo tekst i nije vrlo učinkovit i ne sadrži konfiguraciju operatora. Neka se sadržaj promijeni u jsonb.

>> ALTER TABLA Novi ALTER STOLPAC Val TIP JSONB;

Sada izvršite isti upit u ljusci, a rezultat pokazuje jedan red s brojem '11' u svom nizu kao što je dano dolje.

>> ODABERI * OD NOVOG GDJE Val @> '11';

Primjer 02:

Napravimo tablicu "Torba" koja će se koristiti u našim ilustracijama dok ne počnemo govoriti o metodama i operatorima koji se mogu koristiti za tip podataka PostgreSQL JSONB. Jedan od njegovih stupaca, npr.g. "Robna marka" mora biti "JSONB" vrsta podataka kako slijedi:

>> IZRADI TORBU TORBE (ID serijski PRIMARNI KLJUČ, marka JSONB NIJE NULL);

Koristit ćemo sljedeću SQL INSERT deklaraciju za dodavanje podataka u tablicu PostgreSQL 'Torba':

>> VRIJEME UMETNITE U VRIJEME vrećice (robne marke) ('"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,] ');

Možete vidjeti da su podaci dodani u obliku rječnika, npr.g., ključevi i vrijednosti.

Elementi ove tablice 'Torba' mogu se vidjeti pomoću SELECT rečenice, kao što se vidi dolje:

>> ODABERI * IZ Torbe;

Upotreba operatora '->'

Potražimo vrijednosti u stupcu 'Brand' putem ključa 'name' pomoću operatora '->' u našem upitu.  Dohvatit će sve zapise ključa 'ime' iz stupca 'Marka'. Izlaz će biti prikazan u novom stupcu 'marka'. Konačni izlaz prikazat će se kao što je dodano u nastavku. Kao što vidite, imamo tri vrijednosti: 'Gucci, Allure, kidza' za ključno 'ime'.

>> ODABERITE marku -> 'naziv' KAO marka IZ torbe;

Upotreba operatora '->' pomoću klauzule WHERE

Dohvatimo sve one retke iz tablice "Torba" gdje je stupac "Brand" za svoj ključ "prodao" dobio vrijednost "true". Upit za ovaj odabir je sljedeći:

>> ODABERITE * FROM Bag WHERE Robna marka -> 'prodano' = 'točno';

Eto vidite, upit je dohvatio dva retka samo iz tablice "Torba", jer ima samo dva retka koja imaju vrijednost "true" za ključ "prodano".

PostgreSQL JSONB funkcije:

S JSONB informacijama čini se da postoji niz ugrađenih metoda koje se mogu koristiti. Pogledajmo ih jednog po jednog.

JSONB Svaka funkcija:

JSONB Svaka funkcija uzima podatke i pretvara ih u par key_value. Razmotrite sljedeći upit metode jsonb_each gdje smo naveli vrijednosti. Podaci JSON-a najviše razine proširuju se u niz kombinacija ključ / vrijednost u ishodu. Dobili smo dva para ključ / vrijednost, kao što je prikazano u nastavku.

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

Funkcija tipki objekta JSONB:

Sada ćemo pogledati funkciju Jsonb_object_keys. Ova funkcija uzima podatke, a sama odvaja i identificira ključne vrijednosti u njima. Isprobajte donji SELECT upit, u kojem smo koristili metodu jsonb_object_keys i dali neke vrijednosti. Ova metoda vratit će samo ključeve najviše razine JSON dokumenta za određene podatke, kao što je prikazano u nastavku.

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

JSONB funkcija ekstrakcije puta:

JSONB Extract Path funkcija zauzima put za prikaz vrijednosti u ishodu. Isprobajte upit ispod u naredbenoj ljusci, gdje smo naveli 'brand' kao put do JSONB jsonb_extract_path metode. Iz rezultata predstavljenih na donjoj slici možete vidjeti da je 'Gucci' vraćena vrijednost staze 'ime'.

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

JSONB lijepa funkcija:

Ako svoje JSON datoteke želite prikazati s lako čitljivim izgledom, tada je najbolja opcija funkcija JSONB Pretty. Isprobajte upit u nastavku i dobit ćete jednostavan izlaz.

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

Zaključak:

Kada pohranjujete JSONB podatke u PostgreSQL baze podataka, dobivate najbolji mogući ishod: jednostavnost i pouzdanost NoSQL baze podataka u kombinaciji s prednostima relacijske baze podataka. Koristeći brojne operatore i metode, pokazali smo kako se koristi PostgreSQL JSONB. Moći ćete raditi s JSONB podacima koristeći naše ilustracije kao referencu.

Najbolje aplikacije za mapiranje gamepada za Linux
Ako volite igrati igre na Linuxu s gamepadom umjesto tipičnim sustavom za unos tipkovnice i miša, za vas postoji nekoliko korisnih aplikacija. Mnoge r...
Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...
HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...