Tipo de datos XML de PostgreSQL

Tipo de datos XML de PostgreSQL

La forma completa de XML es un lenguaje de marcado extensible. Cada elemento o etiqueta del XML está definido por el usuario. La información se puede transmitir fácilmente de una ubicación a otra utilizando datos XML. Los datos XML se almacenan en formato jerárquico. La base de datos PostgreSQL admite el tipo de datos XML para almacenar datos XML. La forma de usar el tipo de datos XML en la tabla PostgreSQL se ha mostrado en este tutorial.

Requisitos previos:

Debe instalar la última versión de los paquetes PostgreSQL en el sistema operativo Linux antes de ejecutar las declaraciones SQL que se muestran en este tutorial. Ejecute los siguientes comandos para instalar e iniciar el PostgreSQL:

$ sudo apt-get -y instalación postgresql postgresql-contrib
$ sudo systemctl iniciar postgresql.servicio

Ejecute el siguiente comando para iniciar sesión en PostgreSQL con permiso raíz:

$ sudo -u postgres psql

Uso del tipo de datos PostgreSQL:

Antes de crear cualquier tabla con el tipo de datos booleanos, debe crear una base de datos PostgreSQL. Entonces, ejecute el siguiente comando para crear una base de datos llamada 'testdb'.

# Crear base de datos TestDB;

La siguiente salida aparecerá después de crear la base de datos:

A. Datos XML con un nodo infantil

Ejecute la siguiente consulta de creación para crear una tabla llamada xmldoc1 con un campo de tipo de datos XML:

# Crear tabla xmldoc1 (xmldata xml);

Ejecute la siguiente consulta de inserción para agregar datos XML con un nodo infantil en el campo XMLDATA del tipo de datos XML:

# Inserte en xmldoc1
VALORES (
'
[email protected]
[email protected]
El sitio está abajo
Mi sitio no funciona.
');

La siguiente salida aparecerá después de ejecutar las declaraciones anteriores:

Ejecute la siguiente consulta de selección para leer todos los registros del xmldoc1 mesa:

# Seleccionar * de XMLDOC1;

La siguiente salida aparecerá después de ejecutar la instrucción anterior:

B. Datos XML con diferentes nodos infantiles

Ejecute la siguiente consulta de creación para crear una tabla llamada xmldoc2 con dos campos. El primer nombre de campo es identificación cuál es la clave principal de la tabla. El valor de este campo se incrementará automáticamente cuando un nuevo registro se insertará. El segundo nombre de campo es xmldata y el tipo de datos es XML.

# Crear tabla xmldoc2 (
ID Clave primaria en serie,
xmldata xml);

La siguiente salida aparecerá si la tabla se crea correctamente:

Ejecutar lo siguiente INSERTAR consulta para insertar datos XML de diferentes nodos infantiles. Aquí, los datos XML con cuatro nodos infantiles se insertarán en el xmldata campo.

# Insertar en XMLDOC2 (XMLDATA)
VALORES ('

[email protected]
[email protected]
El sitio está abajo
Mi sitio no funciona.
');

La siguiente salida aparecerá si el INSERTAR La consulta se ejecuta con éxito:

Ejecute la siguiente consulta de selección para leer el valor de cada nodo del documento XML en cada campo por separado.:

# Seleccione Unnest (xpath ('// a/text ()', xmldata :: xml)) en cuanto a,
unnest (xpath ('// from/text ()', xmldata :: xml)) como de,
unnest (xpath ('// seno/text ()', xmldata :: xml)) como sujeto,
Unnest (xpath ('// mensaje/text ()', xmldata :: xml)) como mensaje
De xmldoc2;

C. Convertir los datos XML en una tabla

Ejecute la siguiente consulta de creación para crear una tabla llamada lista de libros que convertirá los datos XML en una tabla:

# Crea la lista de libros de la tabla como SELECT XML
$$

Guía de desarrolladores de XML
Gambardella y Matthew
44.95


Lluvia de medianoche
Ralls y Kim
5.95


Maeve ascendente
Corets y Eva
5.95

$$ como libros;

La siguiente salida aparecerá si los datos XML se convierten en una tabla correctamente:

El contenido de los nodos XML se puede recuperar definiendo la ruta del nodo correctamente. El xmltable.* es una de las formas de leer el nodo y los valores de atributo de la tabla que se convirtió de los datos XML. Ejecute la siguiente consulta de selección para leer el valor del identificación atributo del libro nodo y los valores del Título, autor y nodos de precios. Aquí, el símbolo '@' ha usado para leer el valor del atributo.

# Seleccione XMLTable.* De la lista de libros,
XMLTABLE ('/LIBROS/LIBRO' PASSA DE PASOS
Columnas
id char (2) ruta '@id' no nulo,
Título de texto Path 'Título' no nulo,
Autor Puta de texto 'Autor' no nulo,
precio ruta de flotación 'precio' no nulo);

La siguiente salida aparecerá después de ejecutar la consulta anterior:

Los valores de los nodos y atributos XML se pueden recuperar de la tabla definiendo los nombres de campo en la consulta de selección basada en los nodos XML. Ejecute la siguiente consulta de selección para leer el valor del identificación atributo del nodo del libro y los valores del Título, autor y nodos de precios. Aquí, el símbolo '@' se ha utilizado para leer el valor del atributo como la consulta de selección anterior.

# Seleccionar ID, título, autor, precio de la lista de libros,
XMLTABLE ('/LIBROS/LIBRO' PASSA DE PASOS
Columnas
ID int ruta '@id' no nulo,
Título Varchar (50) Path 'Título' no nulo,
Autor varchar (30) ruta 'autor' no nulo,
Precio ruta de flotación 'precio' no nulo);

La siguiente salida aparecerá después de ejecutar la consulta anterior:

La función agregada se puede aplicar al nodo del XML utilizando la consulta SELECT. Ejecute la siguiente consulta de selección para contar el número total de identificación atributo y precio total de todos los libros utilizando el Count () función y suma () función. Según los datos XML, el número total de atributos de identificación es 3 y la suma de todos los nodos de precios es 56.85.

# Seleccionar recuento (id) como total_books, suma (precio) como total_price de la lista de libros,
XMLTABLE ('/LIBROS/LIBRO' PASSA DE PASOS
Columnas
ID int ruta '@id' no nulo,
tittle varchar (50) ruta 'título' no nulo,
autor varchar (30) ruta 'autor' no nulo,
precio ruta de flotación 'precio' no nulo);

La siguiente salida aparecerá después de ejecutar la consulta anterior:

Conclusión:

La forma de usar el tipo de datos XML en las tablas PostgreSQL y la lectura de los datos XML de la tabla de diferentes maneras se ha mostrado en este tutorial para ayudar a los nuevos usuarios de PostgreSQL a conocer los usos de este tipo de datos correctamente.