PostgreSql XML datatype

PostgreSql XML datatype

Den fulle formen for XML er utvidbart markeringsspråk. Hvert element eller taggen til XML er definert av brukeren. Informasjonen kan enkelt overføres fra et sted til et annet ved å bruke XML -data. XML -dataene lagres i et hierarkisk format. PostgreSql -databasen støtter XML -datatype for å lagre XML -data. Måten å bruke XML -datatype i PostgreSQL -tabellen er vist i denne opplæringen.

Forutsetninger:

Du må installere den nyeste versjonen av PostgreSQL -pakker på Linux -operativsystemet før du utfører SQL -uttalelsene som vises i denne opplæringen. Kjør følgende kommandoer for å installere og starte PostgreSQL:

$ sudo apt-get -y installer postgreSql postgreSql-contrib
$ sudo SystemCTL Start PostgreSql.service

Kjør følgende kommando for å logge inn på PostgreSQL med rottillatelse:

$ sudo -u postgres psql

Bruk av PostgreSQL -datatype:

Før du oppretter en tabell med den boolske datatypen, må du opprette en PostgreSQL -database. Så kjør følgende kommando for å opprette en database som heter 'Testdb'.

# Opprett databasetestdb;

Følgende utdata vises etter å ha opprettet databasen:

EN. XML -data med en barneknute

Kjør følgende Opprett spørsmål for å lage en tabell som heter xmldoc1 med et felt av XML -datatype:

# Opprett tabell XMLDOC1 (XMLDATA XML);

Kjør følgende sett inn spørring for å legge til XML -data med en barneknute i XMLData -feltet av XML -datatype:

# Sett inn i xmldoc1
Verdier (
'
[email protected]
[email protected]
Nettstedet er nede
Nettstedet mitt fungerer ikke.
');

Følgende utgang vises etter å ha utført uttalelsene ovenfor:

Kjør følgende velg spørring for å lese alle poster fra xmldoc1 bord:

# Velg * fra xmldoc1;

Følgende utdata vises etter utførelse av uttalelsen ovenfor:

B. XML -data med forskjellige barneknuter

Kjør følgende Opprett spørsmål for å lage en tabell som heter xmldoc2 med to felt. Det første feltnavnet er id som er den primære nøkkelen til tabellen. Verdien av dette feltet vil bli økt automatisk når en ny post vil sette inn. Det andre feltnavnet er xmldata og datatypen er xml.

# Lag tabell XMLDOC2 (
ID Seriell primærnøkkel,
xmldata xml);

Følgende utgang vises hvis tabellen opprettes vellykket:

Kjør følgende SETT INN Spørring for å sette inn XML -data fra forskjellige barneknuter. Her vil XML -dataene med fire barneknuter bli satt inn i xmldata felt.

# Sett inn i xmldoc2 (xmldata)
Verdier ('

[email protected]
[email protected]
Nettstedet er nede
Nettstedet mitt fungerer ikke.
');

Følgende utgang vil vises hvis SETT INN Spørring utføres vellykket:

Kjør følgende velg spørring for å lese verdien av hver node i XML -dokumentet i hvert felt separat.:

# Velg Unnest (xpath ('// to/text ()', xmldata :: xml)) som til,
Unnest (xpath ('// from/text ()', xmldata :: xml)) som fra,
Unnest (xpath ('// emne/text ()', xmldata :: xml)) som emne,
Unnest (xpath ('// melding/tekst ()', xmldata :: xml)) som melding
Fra xmldoc2;

C. Konverter XML -data til en tabell

Kjør følgende Opprett spørsmål for å lage en tabell som heter bokliste Det vil konvertere XML -dataene til en tabell:

# Lag tabellbokliste som velg XML
$$

XML Developers Guide
Gambardella og Matthew
44.95


Midnattregn
Ralls og Kim
5.95


Maeve Ascendant
Corets og Eva
5.95

$$ som bøker;

Følgende utgang vises hvis XML -dataene blir konvertert til en tabell riktig:

Innholdet i XML -nodene kan hentes ved å definere banen til noden riktig. De xmltable.* er en av måtene å lese noden og attributtverdiene fra tabellen som ble konvertert fra XML -dataene. Kjør følgende velg spørring for å lese verdien av id attributt til bok Node og verdiene til tittel, forfatter og prisnoder. Her har '@' -symbolet brukt til å lese attributtverdien.

# Velg xmltable.* Fra bokliste,
Xmltable ('/bøker/bok' Passing Books
Kolonner
id char (2) sti '@id' ikke null,
tittel tekst bane 'tittel' ikke null,
Forfatter tekstvei 'forfatter' ikke null,
pris float bane 'pris' ikke null);

Følgende utgang vises etter utførelse av spørringen ovenfor:

Verdiene til XML -nodene og attributtene kan hentes fra tabellen ved å definere feltnavnene i SELECT -spørringen basert på XML -nodene. Kjør følgende velg spørring for å lese verdien av id attributt til boknoden og verdiene til tittel, forfatter og prisnoder. Her har '@' -symbolet blitt brukt til å lese attributtverdien som forrige utvalgte spørring.

# Velg ID, tittel, forfatter, pris fra bokliste,
Xmltable ('/bøker/bok' Passing Books
Kolonner
Id int path '@id' ikke null,
Tittel varchar (50) bane 'tittel' ikke null,
Forfatter varchar (30) sti 'forfatter' ikke null,
Pris float bane 'pris' ikke null);

Følgende utgang vises etter utførelse av spørringen ovenfor:

Den samlede funksjonen kan brukes på noden til XML ved å bruke SELECT -spørringen. Kjør følgende velg spørring for å telle det totale antallet av id attributt og totalpris for alle bøker ved å bruke Count () Funksjon og sum () funksjon. I følge XML -dataene er det totale antallet ID -attributter 3 og summen av alle prisnoder er 56.85.

# Velg count (id) som total_books, sum (pris) som total_price fra bokliste,
Xmltable ('/bøker/bok' Passing Books
Kolonner
id int path '@id' ikke null,
tittle varchar (50) bane 'tittel' ikke null,
Forfatter varchar (30) sti 'forfatter' ikke null,
pris float bane 'pris' ikke null);

Følgende utgang vises etter utførelse av spørringen ovenfor:

Konklusjon:

Måten å bruke XML -datatype i PostgreSQL -tabeller og lese XML -dataene fra tabellen på forskjellige måter har blitt vist i denne opplæringen for å hjelpe de nye PostgreSQL -brukerne til å kjenne bruken av denne datatypen riktig.