PostgreSQL - XML

Sommario

PostgreSQL ha il supporto per un tipo di dati XMLSebbene questo possa essere molto utile per noi, molte volte ci sono critiche perché questo può portare a infrangere molte delle regole dei database relazionali come la normalizzazione, sebbene ciò non abbia impedito a tutti i driver e motori dei database di fascia alta di fornire supporto per questo tipo di dati.

Caricamento dati in XML

Prima di vedere come funziona da un punto di vista teorico, vediamo un esempio di come possiamo caricare un campo con questo tipo di dati.

 INSERT INTO web_sessions (session_id, session_state) VALUES ('robe', 'colorredbackgroundsnoopy' :: xml); 
Come vediamo il secondo campo a cui effettuiamo l'inserimento è il campo XML che indichiamo ponendolo :: xml alla fine delle informazioni che vogliamo inserire.

Interrogare l'XML

Per chiedere informazioni sul XML possiamo usare la funzione xpath() poiché è abbastanza utile a questo scopo, il primo argomento che riceve è una query di tipo XPath e il secondo è una stringa che contiene l'XML, la risposta è un array di oggetti XML che soddisfano le condizioni della query XPath. Vediamo un esempio di come farlo combinandolo con la funzione sbrogliare () per mostrare i risultati come se fossero righe di una tabella.

INGRANDIRE

Analizziamo i punti elencati:

1. Sottoscriviamo l'array, poiché XPath restituisce sempre un array anche se è un singolo elemento che arriva nella risposta alla query.

2. Otteniamo l'elemento testo sia nel nome che nel valore di ogni elemento prop.

3. Esaminiamo i tag,,,, dell'XML.

Come possiamo vedere, è abbastanza facile fare le query per ottenere i valori dei campi con tipo di dati XML.

Tipi di dati compositi e personalizzati

Il tipo di oggetto composto composito è un tipo speciale in PostgreSQL perché spesso viene utilizzato per costruire un oggetto e quindi viene associato a un tipo personalizzato o come ritorno di una funzione che deve restituire più colonne.

PostgreSQL crea automaticamente un tipo personalizzato per tutte le tabelle, per qualsiasi scopo possiamo usare tipi personalizzati come quelli definiti di default all'interno di PostgreSQL, possiamo persino creare un array di questi tipi.

Vediamo un piccolo codice a riguardo:

 CREATE TABLE user_facts (user_id varchar (30) PRIMARY KEY, fact census.facts []);
Quindi creiamo un record:

 RIGA (86, '25001010206', 2012, 123, NULL) :: census.facts
E infine lo inseriamo nella nostra tabella personalizzata:

 INSERT INTO user_facts (user_id, fact) VALUES ('robe', ARRAY [ROW (86, '25001010206', 2012, 123, NULL) :: census.facts]); 
Possiamo anche incorporare più dati nel nostro tipo nel modo seguente usando la concatenazione:

 AGGIORNA user_facts SET fatti = fatti || array (SELECT F FROM census.facts AS F WHERE fact_type_id = 86) WHERE user_id = 'robe'; 
Quindi quando si effettua la query vediamo come tutto ha senso come nell'immagine seguente:

INGRANDIRE

Con questo finiamo questo tutorial sui tipi di dati XML e sui tipi di dati personalizzati, come sempre, vale la pena consigliare di praticare gli argomenti visti qui in questo modo per mantenere questa conoscenza il più fresca possibile per la tua applicazione.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave