PostgreSQL – XML

PostgreSQL unterstützt einen XML- Datentyp, obwohl dies für uns sehr nützlich sein kann. Es gibt jedoch häufig Kritik, da dies dazu führen kann, dass viele Regeln der relationalen Datenbanken wie die Normalisierung verletzt werden, obwohl dies nicht der Fall ist hat alle Handler und Engines von High-End-Datenbanken daran gehindert, diese Art von Daten zu unterstützen.

Laden von Daten in XML

Bevor wir die Operation von einem theoretischen Standpunkt aus betrachten, sehen wir uns ein Beispiel an, wie wir ein Feld mit diesem Datentyp laden können.

 INSERT INTO web_sessions (session_id, session_state) WERTE ('robe', '<session> <screen_properties> <prop> <name> color </ name> <val> network </ val> </ prop> <prop> <name> background </ name> <val> snoopy </ val> </ prop> </ screen_properties> </ session> ':: xml); 

Wie wir sehen, ist das zweite Feld, in das wir einfügen, das XML- Feld, das wir durch Platzieren von :: xml am Ende der einzufügenden Informationen kennzeichnen.

Fragen zum XML stellen

Um XML abzufragen, können wir die Funktion xpath () verwenden, da sie für diesen Zweck sehr nützlich ist. Das erste Argument ist eine Abfrage vom Typ XPath und das zweite ist eine Zeichenfolge, die XML enthält. Die Antwort ist ein Array von XML-Objekte, die die Bedingungen der XPath-Abfrage erfüllen. Sehen wir uns ein Beispiel dafür an, wie dies durch Kombinieren mit der Funktion unnest () geschehen kann , um die Ergebnisse so anzuzeigen, als wären sie Zeilen einer Tabelle.

pg_xml1.jpg

Lassen Sie uns die aufgeführten Punkte aufschlüsseln:

1. Wir erstellen eine Subskription des Arrays, da XPath immer ein Array zurückgibt, auch wenn nur ein Element in der Abfrageantwort enthalten ist.

See also  Wie installiere ich Zabbix unter Debian 9?

2. Wir erhalten das Textelement sowohl im Namen als auch im Wert jedes Requisitenelements.

3. Wir machen die Tour innerhalb der XML-Tags <prop>, <name>, </ name>, <val>, </ val>, </ prop>.

Wie wir sehen können, ist es ziemlich einfach, die Abfragen durchzuführen, um die Werte der Felder mit dem XML-Datentyp zu erhalten.

Zusammengesetzte und angepasste Datentypen

Der zusammengesetzte zusammengesetzte Objekttyp ist ein spezieller Typ in PostgreSQL, da er häufig zum Erstellen eines Objekts verwendet wird und dann einem benutzerdefinierten Typ oder als Rückgabe einer Funktion zugeordnet wird, die mehrere Spalten zurückgeben muss.

PostgreSQL erstellt automatisch einen benutzerdefinierten Typ für alle Tabellen. Für jeden Zweck, den wir standardmäßig in PostgreSQL definierten benutzerdefinierten Typ verwenden können, können wir sogar ein Array dieser Typen erstellen.

Sehen wir uns einen kleinen Code dazu an:

 CREATE TABLE user_facts (user_id varchar (30) PRIMARY KEY, facts census.facts []); 

Dann erstellen wir einen Datensatz:

 ROW (86, '25001010206', 2012, 123, NULL) :: census.facts 

Und zum Schluss fügen wir es in unsere personalisierte Tabelle ein:

 INSERT INTO user_facts (user_id, facts) VALUES ('robe', ARRAY [ROW (86, '25001010206', 2012, 123, NULL) :: census.facts]); 

Mit der Verkettung können wir auf folgende Weise sogar mehr Daten in unseren Typ integrieren:

 UPDATE user_facts SET facts = facts || Array (SELECT F FROM census.facts AS F WHERE fact_type_id = 86) WHERE user_id = 'robe'; 

Dann sehen wir bei der Abfrage, wie alles Sinn macht, wie in der folgenden Abbildung dargestellt: pg_xml2.jpg

Damit beenden wir dieses Tutorial über die Arten von XML-Daten und die Arten von personalisierten Daten, da es immer empfehlenswert ist, die hier aufgeführten Themen zu üben, um dieses Wissen für seine Anwendung so aktuell wie möglich zu halten.

See also  Kopieren und Verschieben von Ordnern, Verzeichnissen oder Dateien unter Linux

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *