Tipo di dati XML PostgreSQL

Tipo di dati XML PostgreSQL

La forma completa di XML è un linguaggio di markup estensibile. Ogni elemento o tag dell'XML è definito dall'utente. Le informazioni possono essere trasmesse facilmente da una posizione all'altra utilizzando i dati XML. I dati XML sono archiviati in un formato gerarchico. Il database PostgreSQL supporta il tipo di dati XML per archiviare i dati XML. Il modo di utilizzare il tipo di dati XML nella tabella PostgreSQL è stato mostrato in questo tutorial.

Prerequisiti:

È necessario installare l'ultima versione dei pacchetti PostgreSQL sul sistema operativo Linux prima di eseguire le istruzioni SQL mostrate in questo tutorial. Esegui i seguenti comandi per installare e avviare PostgreSQL:

$ sudo apt-get -y installa postgresql postgresql-confrib
$ sudo systemctl Inizia postgresql.servizio

Esegui il seguente comando per accedere a PostgreSQL con l'autorizzazione alla radice:

$ sudo -u postgres psql

Utilizzo del tipo di dati PostgreSQL:

Prima di creare qualsiasi tabella con il tipo di dati booleani, è necessario creare un database PostgreSQL. Quindi, esegui il seguente comando per creare un database chiamato 'testdb'.

# Crea test Database TestDB;

Verrà visualizzato il seguente output dopo la creazione del database:

UN. Dati XML con un nodo figlio

Esegui le seguenti query Crea per creare una tabella denominata xmldoc1 Con un campo di tipo di dati XML:

# Crea la tabella xmldoc1 (xmldata xml);

Esegui la seguente query Insert per aggiungere i dati XML con un nodo figlio nel campo XMLData del tipo di dati XML:

# Inserisci in xmldoc1
VALORI (
'
[email protected]
[email protected]
Il sito è inattivo
Il mio sito non funziona.
');

Verrà visualizzato il seguente output dopo aver eseguito le dichiarazioni di cui sopra:

Esegui le seguenti query Seleziona per leggere tutti i record da xmldoc1 tavolo:

# Seleziona * da xmldoc1;

Verrà visualizzato il seguente output dopo aver eseguito l'istruzione sopra:

B. Dati XML con diversi nodi figlio

Esegui le seguenti query Crea per creare una tabella denominata xmldoc2 con due campi. Il primo nome di campo è id che è la chiave principale della tabella. Il valore di questo campo verrà incrementato automaticamente quando un nuovo record si inserisce. Il secondo nome di campo è XMLData e il tipo di dati è XML.

# Crea la tabella xmldoc2 (
Chiave primaria seriale ID,
xmldata xml);

Verrà visualizzato il seguente output se la tabella viene creata correttamente:

Eseguire quanto segue INSERIRE Query per inserire i dati XML di diverso nodo figlio. Qui, i dati XML con quattro nodi figlio saranno inseriti nel xmldata campo.

# Inserisci in xmldoc2 (xmldata)
VALORI ('

[email protected]
[email protected]
Il sito è inattivo
Il mio sito non funziona.
');

La seguente uscita apparirà se il INSERIRE La query viene eseguita correttamente:

Esegui la seguente query Seleziona per leggere il valore di ciascun nodo del documento XML in ciascun campo separatamente.:

# Seleziona UnNest (xpath ('// to/text ()', xmldata :: xml)) su,
Unnest (xpath ('// from/text ()', xmldata :: xml) come da da da,
Unnst (xpath ('// soggetto/text ()', xmldata :: xml) come soggetto,
Unnst (xpath ('// message/text ()', xmldata :: xml) come messaggio
Da xmldoc2;

C. Converti i dati XML in una tabella

Esegui le seguenti query Crea per creare una tabella denominata lista di libri che convertirà i dati XML in una tabella:

# Crea la lista di libri di tabella come seleziona XML
$$

Guida agli sviluppatori XML
Gambardella e Matthew
44.95


Pioggia di mezzanotte
Ralls e Kim
5.95


Maeve ascendente
Corets ed Eva
5.95

$$ come libri;

Verrà visualizzato il seguente output se i dati XML vengono convertiti correttamente in una tabella:

Il contenuto dei nodi XML può essere recuperato definendo correttamente il percorso del nodo. IL xmltable.* è uno dei modi per leggere i valori del nodo e degli attributi dalla tabella che è stata convertita dai dati XML. Esegui le seguenti query Seleziona per leggere il valore del id attributo del libro nodo e i valori del Titolo, autore e nodi di prezzo. Qui, il simbolo "@" ha usato per leggere il valore dell'attributo.

# Seleziona xmltable.* Dalla lista dei libri,
Xmltable ('/libri/libri' libri di passaggio
Colonne
id char (2) percorso '@id' non null,
Titolo di testo del titolo "Titolo" non null,
percorso di testo dell'autore 'autore' non null,
Price Float Path 'Price' non null);

Verrà visualizzato il seguente output dopo aver eseguito la query sopra:

I valori dei nodi e degli attributi XML possono essere recuperati dalla tabella definendo i nomi dei campi nella query Seleziona in base ai nodi XML. Esegui le seguenti query Seleziona per leggere il valore del id attributo del nodo del libro e i valori del Titolo, autore e nodi di prezzo. Qui, il simbolo "@" è stato usato per leggere il valore dell'attributo come la precedente query selezionata.

# Seleziona ID, titolo, autore, Price da BookList,
Xmltable ('/libri/libri' libri di passaggio
Colonne
Id int path '@id' non null,
Titolo Varchar (50) percorso 'Titolo' non null,
Autore varchar (30) percorso 'autore' non null,
Price Float Path 'Price' non null);

Verrà visualizzato il seguente output dopo aver eseguito la query sopra:

La funzione aggregata può essere applicata al nodo di XML utilizzando la query selezionata. Esegui la seguente query Seleziona per contare il numero totale di id attributo e prezzo totale di tutti i libri usando il Count () funzione e somma () funzione. Secondo i dati XML, il numero totale di attributi ID è 3 e la somma di tutti i nodi di prezzo è 56.85.

# Seleziona conteggio (ID) come Total_Books, Sum (Price) come Total_Price da BookList,
Xmltable ('/libri/libri' libri di passaggio
Colonne
id int path '@id' non null,
Title Varchar (50) percorso 'Titolo' non null,
autore varchar (30) percorso 'autore' non null,
Price Float Path 'Price' non null);

Verrà visualizzato il seguente output dopo aver eseguito la query sopra:

Conclusione:

In questo tutorial è stato mostrato il modo di utilizzare il tipo di dati XML nelle tabelle PostgreSQL e leggere i dati XML dalla tabella in diversi modi per aiutare i nuovi utenti Postgresql a conoscere correttamente gli usi di questo tipo di dati.