Type de données XML PostgreSQL

Type de données XML PostgreSQL

La forme complète de XML est un langage de balisage extensible. Chaque élément ou étiquette du XML est défini par l'utilisateur. Les informations peuvent être transmises facilement d'un endroit à un autre en utilisant des données XML. Les données XML sont stockées dans un format hiérarchique. La base de données PostgreSQL prend en charge le type de données XML pour stocker des données XML. La façon d'utiliser le type de données XML dans la table PostgreSQL a été affichée dans ce tutoriel.

Conditions préalables:

Vous devez installer la dernière version des packages PostgreSQL sur le système d'exploitation Linux avant d'exécuter les instructions SQL affichées dans ce tutoriel. Exécutez les commandes suivantes pour installer et démarrer le postgresql:

$ sudo apt-get -y installer postgresql postgresql-contrib
$ sudo systemctl start postgresql.service

Exécutez la commande suivante pour vous connecter à PostgreSQL avec l'autorisation racine:

$ sudo -u postgres psql

Utilisation du type de données postgresql:

Avant de créer une table avec le type de données booléen, vous devez créer une base de données PostgreSQL. Donc, exécutez la commande suivante pour créer une base de données nommée 'testdb'.

# Créer une base de données testdb;

La sortie suivante apparaîtra après avoir créé la base de données:

UN. Données XML avec un nœud enfant

Exécutez la question de création suivante pour créer un tableau nommé xmldoc1 avec un champ de type de données XML:

# Créer un tableau XMLDOC1 (XMLDATA XML);

Exécutez la requête d'insertion suivante pour ajouter des données XML avec un nœud enfant dans le champ XMLDATA du type de données XML:

# Insérer dans XMLDOC1
VALEURS (
'
admin @ testsite.com
Mike @ gmail.com
Le site est en panne
Mon site ne fonctionne pas.
');

La sortie suivante apparaîtra après avoir exécuté les instructions ci-dessus:

Exécutez la requête de sélection suivante pour lire tous les enregistrements dans le xmldoc1 tableau:

# Select * FROM XMLDOC1;

La sortie suivante apparaîtra après avoir exécuté l'instruction ci-dessus:

B. Données XML avec différents nœuds enfants

Exécutez la question de création suivante pour créer un tableau nommé xmldoc2 avec deux champs. Le premier nom de champ est identifiant qui est la clé principale du tableau. La valeur de ce champ sera incrémentée automatiquement lorsqu'un nouvel enregistrement inséra. Le deuxième nom de champ est XMLDATA et le type de données est XML.

# Créer le tableau XMLDOC2 (
Clé primaire en série ID,
xmldata xml);

La sortie suivante apparaîtra si le tableau est créé avec succès:

Exécutez ce qui suit INSÉRER requête pour insérer des données XML de différents nœuds enfants. Ici, les données XML avec quatre nœuds enfants seront insérées dans le xmldata champ.

# Insérer dans XMLDOC2 (XMLDATA)
VALEURS ('

admin @ testsite.com
Mike @ gmail.com
Le site est en panne
Mon site ne fonctionne pas.
');

La sortie suivante apparaîtra si le INSÉRER La requête est exécutée avec succès:

Exécutez la requête de sélection suivante pour lire séparément la valeur de chaque nœud du document XML dans chaque champ.:

# Select innest (xpath ('// to / text ()', xmldata :: xml)),
Unnest (xpath ('// from / text ()', xmldata :: xml)) comme de,
Unnest (xpath ('// sujet / text ()', xmldata :: xml)) comme sujet,
Unnest (xpath ('// message / text ()', xmldata :: xml)) comme message
De XMLDOC2;

C. Convertir les données XML en un tableau

Exécutez la question de création suivante pour créer un tableau nommé liste de livres qui convertira les données XML en un tableau:

# Créer la liste de livres de table comme sélectionné XML
$$

Guide des développeurs XML
Gambardella et Matthew
44.95


Pluie de minuit
Ralls et Kim
5.95


Ascendant de Maeve
CORETS ET EVA
5.95

$$ comme livres;

La sortie suivante apparaîtra si les données XML sont converties en un tableau correctement:

Le contenu des nœuds XML peut être récupéré en définissant correctement le chemin du nœud. Le xmlable.* est l'une des façons de lire les valeurs du nœud et d'attribuer de la table qui a été convertie à partir des données XML. Exécutez la requête de sélection suivante pour lire la valeur du identifiant attribut du livre nœud et les valeurs du Titre, auteur et nœuds de prix. Ici, le symbole '@' a utilisé pour lire la valeur d'attribut.

# SELECT XMLTABLE.* De la liste de livres,
XMLTABLE ('/ Books / Book' Passing Books
COLONNES
id char (2) chemin '@id' pas null,
Titre Text Chemin 'Titre' pas null,
Path texte de l'auteur «Auteur» pas nul,
PRIX FLOT PATH «Prix» pas nul);

La sortie suivante apparaîtra après avoir exécuté la requête ci-dessus:

Les valeurs des nœuds et attributs XML peuvent être récupérés de la table en définissant les noms de champ dans la requête de sélection basée sur les nœuds XML. Exécutez la requête de sélection suivante pour lire la valeur du identifiant attribut du nœud de livre et des valeurs du Titre, auteur et nœuds de prix. Ici, le symbole '@' a été utilisé pour lire la valeur d'attribut comme la requête de sélection précédente.

# SELECT ID, titre, auteur, prix de la liste de livres,
XMLTABLE ('/ Books / Book' Passing Books
COLONNES
Id int chemin '@id' pas null,
Titre Varchar (50) Path 'Title' pas null,
Auteur Varchar (30) Chemin «Auteur» pas nul,
PRIX FLOT PATH «Prix» pas nul);

La sortie suivante apparaîtra après avoir exécuté la requête ci-dessus:

La fonction agrégée peut être appliquée au nœud du XML en utilisant la requête sélectionnée. Exécutez la requête de sélection suivante pour compter le nombre total de identifiant attribut et prix total de tous les livres en utilisant le Count () fonction et sum () fonction. Selon les données XML, le nombre total d'attributs d'ID est de 3 et la somme de tous les nœuds de prix est de 56.85.

# Sélectionnez Count (ID) comme Total_Books, SUM (Price) comme Total_Price de Booklist,
XMLTABLE ('/ Books / Book' Passing Books
COLONNES
id int chemin '@id' pas null,
Tittle Varchar (50) Chemin 'Titre' pas null,
Auteur Varchar (30) Chemin «Auteur» pas nul,
PRIX FLOT PATH «Prix» pas nul);

La sortie suivante apparaîtra après avoir exécuté la requête ci-dessus:

Conclusion:

La façon d'utiliser le type de données XML dans les tables PostgreSQL et la lecture des données XML de la table de différentes manières se sont affichées dans ce tutoriel pour aider les nouveaux utilisateurs de PostgreSQL à connaître correctement les utilisations de ce type de données.