PostgreSQL - XML

Sadržaj

PostgreSQL ima podršku za tip podataka XMLIako nam to može biti jako korisno, često postoje kritike jer to može dovesti do kršenja mnogih pravila relacijskih baza podataka, poput normalizacije, iako to nije spriječilo sve upravljačke programe i strojeve da vrhunske baze podataka pruže podršku za ovu vrstu podataka.

Učitavanje podataka u XML -u

Prije nego što vidimo kako to funkcionira s teorijskog gledišta, pogledajmo primjer kako možemo učitati polje s ovom vrstom podataka.

 INSERT INTO web_sessions (session_id, session_state) VALUES ('robe', 'colorredbackgroundsnoopy' :: xml); 
Kao što vidimo, drugo polje u koje unosimo je polje XML koje označavamo postavljanjem :: xml na kraju podataka koje želimo umetnuti.

Upiti u XML

Za postavljanje upita o XML možemo koristiti funkciju xpath () budući da je u tu svrhu vrlo koristan, prvi argument koji prima je upit tipa XPath, a drugi je niz koji sadrži XML, odgovor je niz XML objekata koji zadovoljavaju uvjete upita XPath. Pogledajmo primjer kako to učiniti kombiniranjem s funkcijom neiskreno () kako bi se rezultati prikazali kao da su redovi tablice.

POVEĆAJTE

Raščlanimo navedene točke:

1. Pretplaćujemo se na niz, budući da XPath uvijek vraća niz čak i ako se radi o jednom elementu koji dolazi u odgovoru na upit.

2. Dobivamo element tekst kako u nazivu tako i u vrijednosti svakog potpornog elementa.

3. Prolazimo kroz oznake ,,,,, XML -a.

Kao što vidimo, prilično je jednostavno napraviti upite za dobivanje vrijednosti polja s XML tipom podataka.

Složene i prilagođene vrste podataka

Vrsta složenog objekta kompozitni je posebna vrsta u PostgreSQL jer se često koristi za konstruiranje objekta, a zatim je povezan s prilagođenom vrstom ili kao povratak funkcije koja mora vratiti više stupaca.

PostgreSQL automatski stvara prilagođenu vrstu za sve tablice, u bilo koju svrhu možemo koristiti prilagođene vrste, poput onih koje su zadano definirane u PostgreSQL -u, čak možemo napraviti i niz ovih vrsta.

Pogledajmo mali kod o tome:

 CREATE TABLE user_facts (user_id varchar (30) PRIMARNI KLJUČ, popis podataka.facts []);
Zatim stvaramo zapis:

 ROW (86, '25001010206', 2012, 123, NULL) :: popis.fakti
I na kraju ga ubacujemo u našu prilagođenu tablicu:

 INSERT INTO user_facts (user_id, values) VALUES ('ogrtač', NIZ [ROW (86, '25001010206', 2012, 123, NULL) :: cenzus.fakti]); 
Čak možemo uvrstiti više podataka u naš tip na sljedeći način pomoću spajanja:

 UPDATE user_facts SET činjenice = činjenice || niz (SELECT F IZ CENUS.FACTS AS F WHERE fact_type_id = 86) WHERE user_id = 'robe'; 
Tada prilikom postavljanja upita vidimo kako sve ima smisla kao na sljedećoj slici:

POVEĆAJTE

Ovime završavamo ovaj vodič o XML vrstama podataka i prilagođenim vrstama podataka, kao i uvijek, vrijedno je preporučiti vježbanje ovdje viđenih tema na ovaj način kako bi ovo znanje bilo što svježije za vašu aplikaciju.

wave wave wave wave wave