PostgreSQL

Funciones y tipos de datos JSONB de PostgreSQL

Funciones y tipos de datos JSONB de PostgreSQL

Como en el 9.2, PostgreSQL agregó un tipo de datos JSON bastante básico. Debajo de la portada, el tipo de datos JSON es texto, con una verificación de que quizás el diseño sea correcto. Entrada JSON similar a XML. Finalmente, el equipo descubrió que el volumen de procesamiento JSON y la búsqueda especializada necesarios en PostgreSQL habría sido difícil o racional de aplicar sobre un tipo textual de datos. Por lo tanto, crearon una representación binaria del tipo de datos JSON con una gama completa de operadores y métodos. Aquí viene el tipo de datos JSONB. El tipo de datos JSONB es de hecho un diseño de almacenamiento binario versátil con capacidad completa de procesamiento, indexación y búsqueda. Como resultado, procesa previamente la información JSON en un diseño interno, que tiene solo un valor por clave e ignora los espacios en blanco o la depresión adicionales, o puede decir sangría. En esta guía, aprenderá cómo interactuar con el formulario de datos JSONB en PostgreSQL, así como algunos operadores y métodos útiles para tratar con datos JSONB.

El tipo de datos que probablemente necesite y elija usar es JSONB, no la versión anterior de JSON, que solo se usa para compatibilidad con versiones anteriores. Por lo tanto, abra el shell de comandos de PostgreSQL y proporcione los nombres, la base de datos, el puerto y el nombre de usuario del servidor.

Ejemplo 01:

Aquí hay una breve ilustración de las variaciones entre los dos tipos de datos. Tenemos que crear una tabla 'Nuevo' con una de sus columnas que debe ser del tipo de datos 'JSON' de la siguiente manera:

>> CREAR TABLA Nuevo (ID serial CLAVE PRIMARIA, Val JSON);

Inserte algunos valores en la columna 'Val'.

>> INSERT INTO New (Val) VALUES ('[1, 2, 3, 4]'), ('[10, 11, 12, 13]'), ('“key”: “value”') ;

Uso del operador '@>'

Una vez que intentamos buscar entradas con un número entero en la lista de columnas 'extra', siempre obtenemos un mensaje de error como se adjunta a continuación.

>> SELECCIONAR * DE Nuevo DONDE Val @> '11';

sí. JSON es solo texto y no es muy eficiente, y no contiene configuración de operador. Deje que el contenido se cambie a jsonb.

>> ALTER TABLE Nuevo ALTER COLUMN Val TYPE JSONB;

Ahora ejecute la misma consulta en el shell, y el resultado muestra una fila con el número '11' en su matriz como se indica a continuación.

>> SELECCIONAR * DE Nuevo DONDE Val @> '11';

Ejemplo 02:

Hagamos una tabla 'Bolsa' para usar en nuestras ilustraciones hasta que comencemos a hablar sobre los métodos y operadores utilizables para el tipo de datos PostgreSQL JSONB. Una de sus columnas, e.gramo. 'Marca' debe ser del tipo de datos 'JSONB' de la siguiente manera:

>> CREAR TABLA Bolsa (ID de serie CLAVE PRIMARIA, Marca JSONB NO NULO);

Usaremos la siguiente declaración SQL INSERT para agregar información a la tabla de PostgreSQL 'Bolsa':

>> INSERT INTO Bag (Brand) VALUES ('"name": "Gucci", "color": ["red", "black"], "price": 10000, "sold": true,]') , ('"nombre": "Encanto", "color": ["rojo", "Gris"], "precio": 85000, "vendido": falso,]'), ('"nombre": "Kidza", "color": ["negro", "blanco"], "precio": 75000, "vendido": verdadero,] ');

Puede ver que los datos se han agregado en forma de diccionario, e.gramo., claves y valores.

Los elementos de esta tabla 'Bolsa' se pueden ver usando una oración SELECT, como se ve a continuación:

>> SELECCIONAR * DE Bolsa;

Uso del operador '->'

Busquemos los valores en la columna 'Marca' a través de la clave 'nombre' usando el operador '->' en nuestra consulta.  Obtendrá todos los registros de la clave 'nombre' de la columna 'Marca'. La salida se mostrará en la nueva columna 'marca'. La salida final aparecerá como se adjunta a continuación. Como puede ver, tenemos tres valores: 'Gucci, Allure, kidza' para la clave 'nombre'.

>> SELECCIONAR Marca -> 'nombre' COMO marca DE Bolsa;

Uso del operador '->' mediante la cláusula WHERE

Busquemos todas esas filas de la tabla 'Bolsa' donde la columna 'Marca' tiene el valor 'verdadero' para su clave 'vendida'. La consulta para esta selección es la siguiente:

>> SELECCIONAR * DE Bolsa DONDE Marca -> 'vendido' = 'verdadero';

Allí puede ver, la consulta obtuvo dos filas solo de la tabla 'Bolsa' porque solo tiene dos filas que tienen el valor 'verdadero' para la clave 'vendida'.

Funciones JSONB de PostgreSQL:

Con la información JSONB, parece haber una variedad de métodos incorporados que se pueden utilizar. Echemos un vistazo a ellos uno por uno.

JSONB cada función:

JSONB Cada función toma los datos y los convierte en el par key_value. Considere la siguiente consulta del método jsonb_each donde hemos proporcionado valores. Los datos JSON de nivel más alto se expanden en una serie de combinaciones clave-valor en el resultado. Tenemos dos pares clave-valor, como se muestra a continuación.

>> SELECCIONAR jsonb_each ('"nombre": "Encanto", "vendido": "verdadero"' :: jsonb);

Función de claves de objeto JSONB:

Ahora, echaremos un vistazo a la función Jsonb_object_keys. Esta función toma los datos y, por sí misma, separa e identifica los valores clave que contiene. Pruebe la siguiente consulta SELECT, en la que hemos estado usando el método jsonb_object_keys y proporcionamos algunos valores. Este método solo devolverá las claves del documento JSON de nivel más alto para los datos en particular, como se muestra a continuación.

>> SELECT jsonb_object_keys ('"nombre": "kidza", "vendido": "verdadero"' :: jsonb);

Función de ruta de extracción JSONB:

La función JSONB Extract Path toma la ruta para mostrar el valor en el resultado. Pruebe la siguiente consulta en el shell de comandos, donde hemos proporcionado 'marca' como la ruta al método JSONB jsonb_extract_path. De la salida presentada en la imagen a continuación, puede ver que 'Gucci' es un valor devuelto a la ruta 'nombre'.

>> SELECT jsonb_extract_path ('"nombre": "Gucci", "vendido": verdadero' :: jsonb, 'nombre');

Función bonita JSONB:

Si desea mostrar sus archivos JSON con un diseño fácil de leer, la función JSONB Pretty es la mejor opción. Pruebe la siguiente consulta y obtendrá un resultado simple.

>> SELECCIONAR jsonb_pretty ('"nombre": "Encanto", "vendido": falso' :: jsonb);

Conclusión:

Cuando almacena información JSONB en las bases de datos PostgreSQL, obtiene el mejor resultado posible: la simplicidad y confiabilidad de una base de datos NoSQL combinada con las ventajas de una base de datos relacional. Utilizando numerosos operadores y métodos, demostramos cómo utilizar PostgreSQL JSONB. Podrá trabajar con datos JSONB utilizando nuestras ilustraciones como referencia.

5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...
Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...
Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...