PostgreSQL XML -Datentyp

PostgreSQL XML -Datentyp

Die vollständige Form von XML ist eine erweiterbare Markup -Sprache. Jedes Element oder Tag des XML wird vom Benutzer definiert. Die Informationen können leicht von einem Ort zum anderen über die Verwendung von XML -Daten übertragen werden. Die XML -Daten werden in einem hierarchischen Format gespeichert. Die PostgreSQL -Datenbank unterstützt den XML -Datentyp zum Speichern von XML -Daten. In diesem Tutorial wurde die Möglichkeit zur Verwendung von XML -Datentypen in der Tabelle postgreSQL gezeigt.

Voraussetzungen:

Sie müssen die neueste Version von PostgreSQL -Paketen auf dem Linux -Betriebssystem installieren, bevor Sie die in diesem Tutorial gezeigten SQL -Anweisungen ausführen. Führen Sie die folgenden Befehle aus, um die Postgresql zu installieren und zu starten:

$ sudo apt-get -y install postgresql postgresql-contrib
$ sudo systemctl starten postgresql.Service

Führen Sie den folgenden Befehl aus, um sich mit Root -Erlaubnis bei PostgreSQL anzumelden:

$ sudo -u postgres psql

Verwendung des PostgreSQL -Datentyps:

Bevor Sie eine Tabelle mit dem Booleschen Datentyp erstellen, müssen Sie eine PostgreSQL -Datenbank erstellen. Führen Sie also den folgenden Befehl aus, um eine Datenbank mit dem Namen 'zu erstellentestdb''.

# Datenbank testdb erstellen;

Nach dem Erstellen der Datenbank wird die folgende Ausgabe angezeigt:

A. XML -Daten mit einem untergeordneten Knoten

Führen Sie die folgende Abfrage aus, um eine Tabelle mit dem Namen zu erstellen xmldoc1 mit einem Feld mit XML -Datentyp:

# Tabelle XMLDOC1 (xmldata xml) erstellen;

Führen Sie die folgende Abfrage ein, um XML -Daten mit einem untergeordneten Knoten im XMLDATA -Feld des XML -Datentyps hinzuzufügen:

# In xmldoc1 einfügen
WERTE (
''
[email protected]
[email protected]
Die Seite ist unten
Meine Website funktioniert nicht.
');

Die folgende Ausgabe erscheint nach der Ausführung der oben genannten Anweisungen:

Führen Sie die folgende Auswahlabfrage aus, um alle Datensätze aus dem zu lesen xmldoc1 Tisch:

# Select * aus xmldoc1;

Nach der Ausführung der obigen Anweisung wird die folgende Ausgabe angezeigt:

B. XML -Daten mit verschiedenen untergeordneten Knoten

Führen Sie die folgende Abfrage aus, um eine Tabelle mit dem Namen zu erstellen xmldoc2 mit zwei Feldern. Der erste Feldname ist Ausweis Welches ist der Hauptschlüssel der Tabelle. Der Wert dieses Feldes wird automatisch erhöht, wenn ein neuer Datensatz eingefügt wird. Der zweite Feldname ist xmldata und der Datentyp ist XML.

# Tabelle XMLDOC2 erstellen (
id serielle Primärschlüssel,
xmldata xml);

Die folgende Ausgabe wird angezeigt, wenn die Tabelle erfolgreich erstellt wird:

Leiten Sie Folgendes aus EINFÜGUNG Abfragen zum Einfügen von XML -Daten eines verschiedenen untergeordneten Knotens. Hier werden die XML -Daten mit vier untergeordneten Knoten in die eingefügt xmldata Feld.

# In xmldoc2 (xmldata) einfügen
WERTE ('

[email protected]
[email protected]
Die Seite ist unten
Meine Website funktioniert nicht.
');

Die folgende Ausgabe wird angezeigt, wenn die EINFÜGUNG Die Abfrage wird erfolgreich ausgeführt:

Führen Sie die folgende Auswahlabfrage aus, um den Wert jedes Knotens des XML -Dokuments in jedem Feld getrennt zu lesen.:

# Wählen Sie Unnest (xpath ('// to/text ()', xmldata :: xml)),
Unnest (xpath ('// von/text ()', xmldata :: xml))) als aus,
Unnest (xPath ('// betreffend/text ()', xmldata :: xml)) als Thema,
Unnest (xpath ('// message/text ()', xmldata :: xml)) als Nachricht
Von xmldoc2;

C. Umwandeln Sie XML -Daten in eine Tabelle

Führen Sie die folgende Abfrage aus, um eine Tabelle mit dem Namen zu erstellen Bücherliste Dadurch werden die XML -Daten in eine Tabelle umwandelt:

# Tabelle Buchliste erstellen als XML auswählen
$$

XML Developers Guide
Gambardella und Matthew
44.95


Mitternachtsregen
Ralls und Kim
5.95


Maeve Ascendant
Corets und Eva
5.95

$$ als Bücher;

Die folgende Ausgabe wird angezeigt, wenn die XML -Daten ordnungsgemäß in eine Tabelle konvertiert werden:

Der Inhalt der XML -Knoten kann abgerufen werden, indem der Pfad des Knotens richtig definiert wird. Der xmltable.* ist eine der Möglichkeiten, den Knoten- und Attributwerte aus der Tabelle zu lesen, die aus den XML -Daten konvertiert wurde. Führen Sie die folgende Auswahlabfrage aus, um den Wert der zu lesen Ausweis Attribut der Buch Knoten und die Werte der Titel-, Autor- und Preisknoten. Hier hat das '@' -Symbol verwendet, um den Attributwert zu lesen.

# XMLTable auswählen.* Aus Buchliste,
Xmltable ('/book/book' Passing Bücher
SÄULEN
id char (2) path '@id' nicht null,
Titel Textpfad 'Titel' nicht null,
Autor Textpfad 'Autor' nicht null,
Preis float Pfad 'Preis' nicht null);

Die folgende Ausgabe erscheint nach Ausführung der obigen Abfrage:

Die Werte der XML -Knoten und -attribute können aus der Tabelle abgerufen werden. Führen Sie die folgende Auswahlabfrage aus, um den Wert der zu lesen Ausweis Attribut des Buchknotens und der Werte des Titel-, Autor- und Preisknoten. Hier wurde das Symbol '@' verwendet, um den Attributwert wie die vorherige Auswahlabfrage zu lesen.

# ID, Titel, Autor, Preis aus der Buchliste auswählen,
Xmltable ('/book/book' Passing Bücher
SÄULEN
ID int Path '@id' nicht null,
Titel varchar (50) Pfad 'Titel' nicht null,
Autor varchar (30) Pfad 'Autor' nicht null,
Preis float Pfad 'Preis' nicht null);

Die folgende Ausgabe erscheint nach Ausführung der obigen Abfrage:

Die Aggregatfunktion kann auf den Knoten des XML angewendet werden, indem die Auswahlabfrage ausgewählt wird. Führen Sie die folgende Auswahlabfrage aus, um die Gesamtzahl der Gesamtzahl zu zählen Ausweis Attribut und Gesamtpreis aller Bücher mit der Verwendung der Count () Funktion und sum () Funktion. Nach den XML -Daten beträgt die Gesamtzahl der ID -Attribute 3 und die Summe aller Preisknoten 56.85.

# Wählen Sie Graf (ID) als Total_Books, Summe (Preis) als Total_Price aus der Buchliste aus,
Xmltable ('/book/book' Passing Bücher
SÄULEN
ID int Path '@id' nicht null,
TITTLE VARCHAR (50) Pfad 'Titel' nicht null,
Autor varchar (30) Pfad 'Autor' nicht null,
Preis float Pfad 'Preis' nicht null);

Die folgende Ausgabe erscheint nach Ausführung der obigen Abfrage:

Abschluss:

Die Art und Weise, wie der XML -Datentyp in PostgreSQL -Tabellen verwendet und die XML -Daten aus der Tabelle auf unterschiedliche Weise gelesen wurden.