Funciones JSON
1. Curso sobre Funciones JSON en SQL #
Las funciones JSON en SQL permiten manipular y extraer información de datos almacenados en formato JSON. Estas funciones son útiles cuando trabajamos con bases de datos que almacenan estructuras semiestructuradas. A continuación, veremos las funciones más utilizadas en MySQL y PostgreSQL, ya que SQLite tiene soporte limitado para JSON.
2. JSONEXTRACT() - Extraer Datos desde JSON #
JSON_EXTRACT() se usa para obtener valores de un campo JSON en MySQL y PostgreSQL (como -> y ->> en PostgreSQL).
Ejemplo: #
3. JSONOBJECT() y JSONBUILDOBJECT() - Crear un Objeto JSON #
Estas funciones permiten construir un JSON dinámicamente desde columnas.
Ejemplo: #
4. JSONARRAY() y JSONBUILDARRAY() - Crear un Array JSON #
Permiten crear arrays de valores JSON a partir de múltiples datos.
Ejemplo: #
5. JSONCONTAINS() - Buscar Valores en JSON (Solo en MySQL) #
Permite verificar si un JSON contiene un valor específico.
Ejemplo: #
Esto devuelve 1 si el valor está presente y 0 si no lo está.
6. JSONBEXISTS() - Buscar Valores en JSONB (Solo en PostgreSQL) #
Para PostgreSQL, cuando se usa JSONB, se puede verificar si un campo JSON contiene una clave específica.
7. b. JSONCONTAINSPATH() - Verificar si una clave existe dentro de un objeto JSON #
8. JSONMERGEPATCH() - Fusionar JSON (Solo en MySQL) #
Permite combinar dos objetos JSON en MySQL.
Ejemplo: #
Esto devuelve {"nombre": "Juan", "edad": 30}.
9. JSONSET() - Modificar Valores en JSON #
Permite actualizar valores dentro de un objeto JSON sin reescribir todo el contenido.
Ejemplo: #
10. JSONREMOVE() - Eliminar Valores en JSON (Solo en MySQL) #
Permite eliminar una clave específica dentro de un objeto JSON.
Ejemplo: #
Esto devuelve {"nombre": "Juan"}.
11. JSONUNQUOTE() - Eliminar comillas JSON #
Equivalente a "quitar las comillas de un string JSON"
Ejemplo: #
12. JSONLENGTH() - Devuelve el número de elementos #
Devuelve el número de elementos de:
- Un array JSON
- Un objeto JSON (cuenta sus claves)
Ejemplo: #
Resumen del tema
Conceptos clave #
- Extracción de Datos:
JSON_EXTRACT()o los operadores->(devuelve JSON) y->>(devuelve texto) en PostgreSQL extraen valores mediante rutas o claves. - Construcción de JSON:
JSON_OBJECT()yJSON_ARRAY()(o sus equivalentesjson_build_*en PostgreSQL) permiten componer estructuras JSON a partir de columnas y literales. - Búsqueda y Pertenencia:
JSON_CONTAINS(),@>(contención en JSONB) yJSON_CONTAINS_PATH()comprueban si existen claves o valores en el documento. - Modificación y Eliminación:
JSON_SET()/jsonb_set()actualizan o agregan propiedades puntuales, mientras queJSON_REMOVE()o el operador-eliminan claves sin reescribir todo el documento. - Utilidades:
JSON_UNQUOTE()elimina comillas de cadenas JSON yJSON_LENGTH()cuenta el número de elementos en arrays u objetos.
Qué debes recordar #
El soporte JSON en motores relacionales permite modelos híbridos (SQL + NoSQL), siendo JSONB en PostgreSQL y los tipos JSON nativos en MySQL ideales para almacenar y consultar datos semiestructurados con alta eficiencia.