PostgreSQL

PostgreSQL JSONB -tietotyyppi ja toiminnot

PostgreSQL JSONB -tietotyyppi ja toiminnot

Kuten 9.2-versio, PostgreSQL lisäsi melko yksinkertaisen JSON-tietotyypin. Kannen alla JSON-tyyppinen tieto on tekstiä, ja tarkista, että asettelu on ehkä oikea JSON-syöte, joka on samanlainen kuin XML. Lopulta työryhmä havaitsi, että PostgreSQL: ssä tarvittavan JSON-käsittelyn ja erikoistuneen haun määrää olisi ollut vaikea tai järkevä valvoa tekstityyppisten tietojen suhteen. Siksi he loivat binäärisen esityksen JSON-tietotyypistä täydellä operaattorivalikoimalla. Tässä tulee JSONB-tietotyyppi. JSONB-tietotyyppi on todellakin monipuolinen binaarinen tallennustila, jossa on täydellinen käsittely, indeksointi ja hakuominaisuudet. Seurauksena on, että se esikäsittelee JSON-tiedot sisäiseksi asetteluksi, jolla on vain yksi arvo avainta kohden ja joka jättää huomiotta ylimääräisen välilyönnin tai painotuksen, tai saatat sanoa sisennyksen. Tässä oppaassa opit käyttämään JSONB-tietolomaketta PostgreSQL: ssä sekä joitain käteviä operaattoreita ja menetelmiä JSONB-tietojen käsittelemiseksi.

Tietotyyppi, jota todennäköisesti tarvitset ja jonka haluat valita, on JSONB, ei JSON-varhaisversio, jota käytetään vain taaksepäin yhteensopivuuteen. Joten avaa PostgreSQL-komentokuori ja anna palvelimen nimet, tietokanta, portti ja käyttäjänimi.

Esimerkki 01:

Tässä on lyhyt kuvaus kahden tietotyypin vaihteluista. Meidän on luotava taulukko Uusi, jonka yhden sarakkeista on oltava JSON-tietotyyppi seuraavasti:

>> LUO TAULUKKO Uusi (ID-sarja ENSISIJAINEN AVAIN, Val JSON);

Lisää joitain arvoja sarakkeeseen Val.

>> INSERT INTO New (Val) ARVOT ('[1, 2, 3, 4]'), ('[10, 11, 12, 13]'), ('"avain": "arvo"') ;

Käyttäjän '@>' käyttö

Kun yritämme etsiä kokonaislukuja sisältäviä merkintöjä ylimääräisten sarakkeiden luettelosta, saamme aina alla olevan virhesanoman.

>> VALITSE * UUDESTA MISSÄ Val @> '11';

Joo. JSON on vain teksti eikä ole kovin tehokas, eikä se sisällä operaattorin määrityksiä. Anna sisällön muuttaa jsonb: ksi.

>> ALTER-TAULUKKO Uusi ALTER-SARAKE Val TYPE JSONB;

Suorita nyt sama kysely kuoressa, ja tulos näyttää yhden rivin, jonka taulukossa on numero '11', kuten alla on esitetty.

>> VALITSE * UUDESTA MISSÄ Val @> '11';

Esimerkki 02:

Tehkäämme taulukossa oleva laukku, jota käytetään kuvissamme, kunnes alamme puhua PostgreSQL JSONB -tietotyypille käytettävissä olevista menetelmistä ja operaattoreista. Yksi sen sarakkeista, e.g. Tuotemerkin on oltava JSONB-tietotyyppi seuraavasti:

>> LUO PÖYTÄLAUKKU (ID-sarjan PRIMARY KEY, merkki JSONB NOT NULL);

Käytämme seuraavaa SQL INSERT -lauseketta tietojen lisäämiseen PostgreSQL-taulukkoon "Bag":

>> INSERT INTO Bag (Brand) ARVOT ('"nimi": "Gucci", "väri": ["punainen", "musta"], "hinta": 10000, "myyty": tosi,]') , ('"nimi": "viehättää", "väri": ["punainen", "harmaa"], "hinta": 85000, "myyty": väärä,]'), ('"nimi": "Kidza", "color": ["musta", "valkoinen"], "hinta": 75000, "myyty": totta,] ');

Voit nähdä, että tiedot on lisätty sanakirjan muodossa, esim.g., avaimet ja arvot.

Tämän taulukon 'Laukku' elementit voidaan nähdä SELECT-lauseella, kuten alla:

>> SELECT * FROM laukku;

Käyttäjän '->' käyttö

Etsitään arvot Brand-sarakkeesta avaimen 'name' kautta käyttämällä kyselyssä operaattoria '->'.  Se hakee kaikki avaimen 'nimi' tietueet sarakkeesta 'Brand'. Tuotos näkyy uudessa sarakkeessa 'brand'. Lopullinen tulos näkyy liitteenä alla. Kuten näette, meillä on kolme arvoa: Gucci, Allure, kidza avainnimelle.

>> SELECT Brand -> 'nimi' AS-merkki FROM Bag;

Operaattorin '-> käyttö WHERE-lausekkeen avulla

Haetaan kaikki ne rivit taulukosta 'Laukku', joissa Brand-sarake on saanut arvon 'true' avaimelle 'myydään'. Tämän valinnan kysely on seuraava:

>> SELECT * FROM Bag WHERE Tuotemerkki -> 'myyty' = 'tosi';

Sieltä näet, kysely noutaa kaksi riviä vain taulukosta 'Laukku', koska sillä on vain kaksi riviä, joiden arvo 'tosi' avaimelle 'myyty'.

PostgreSQL JSONB -toiminnot:

JSONB-tietojen avulla näyttää olevan erilaisia ​​sisäänrakennettuja menetelmiä, joita voidaan käyttää. Katsotaanpa niitä yksi kerrallaan.

JSONB Jokainen toiminto:

JSONB Jokainen toiminto vie tiedot ja muuntaa ne avainarvopariksi. Harkitse seuraavaa jsonb_each-menetelmän kyselyä, jossa olemme antaneet arvoja. Korkeimman tason JSON-tiedot laajennetaan sarjaan avain-arvo-yhdistelmiä tuloksessa. Meillä on kaksi avainarvoparia alla olevan kuvan mukaisesti.

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

JSONB-objektinäppäintoiminto:

Katsotaan nyt Jsonb_object_keys-funktiota. Tämä toiminto ottaa datan ja erottaa ja tunnistaa itse siinä olevat avainarvot. Kokeile alla olevaa SELECT-kyselyä, jossa olemme käyttäneet jsonb_object_keys-menetelmää ja antaneet joitain arvoja. Tämä menetelmä palauttaa vain JSON: n korkeimman tason asiakirjan avaimet tietyille tiedoille, kuten alla on esitetty.

>> SELECT jsonb_object_keys ('"nimi": "kidza", "myyty": "true"' :: jsonb);

JSONB-purkutien toiminto:

JSONB Extract Path -toiminto näyttää polun näyttää arvon lopputuloksessa. Kokeile alla olevaa kyselyä komentokuoressa, jossa olemme antaneet JSONB-poluksi polun 'brand' jsonb_extract_path. Alla olevan kuvan tuloksesta näet, että Gucci on palautettu arvo polulle 'name'.

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

JSONB Pretty -toiminto:

Jos haluat näyttää JSON-tiedostosi helposti luettavalla asettelulla, JSONB Pretty -toiminto on paras vaihtoehto. Kokeile alla olevaa kyselyä, niin saat yksinkertaisen tuloksen.

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

Päätelmä:

Kun tallennat JSONB-tietoja PostgreSQL-tietokantoihin, saat parhaan mahdollisen lopputuloksen: NoSQL-tietokannan yksinkertaisuus ja luotettavuus yhdistettynä relaatiotietokannan etuihin. Lukuisia operaattoreita ja menetelmiä käyttämällä osoitimme, miten PostgreSQL JSONB: ää käytetään. Pystyt työskentelemään JSONB-datan kanssa käyttämällä viitekuviamme.

Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...