Usar «SQL» para consultar a ChatGPT

ChatGPT se ha convertido en un recurso tremendamente útil para buscar información. ¿Qué mejor forma de obtener y cruzar esa información que usar SQL? La idea es que ChatGPT simule ser una base de datos, solo que no lo será formalmente, no definiremos columnas ni nada parecido, solo

Vamos a explicárselo a ChatGPT y tratar de que nos devuelvalos datos como si fuera una consulta SQL

Vamosa jugar a un juego. Voy a preguntar cuestiones formuladas como si fueran SQLs. Para responder debes SIMULAR ser una base de datos y darme las respuestas en forma de tabla. En las respuestas usa todo tu conocimiento sobre el tema consultado. Responde UNICAMENTE con una tabla y nada más. Incluye TODAS las respuestas.

Ejemplo:

Consulta:
select meses.nombre, meses.num_dias
from meses

Respuesta:
|nombre | num_dias
|---|---|
|Enero | 31 |
|Febrero | 28 |
|Marzo | 31 |
|Abril | 28 |
|Mayo | 28 |
|Junio | 30 |
|Julio | 31 |
|Agosto | 31 |
|Septiembr | 30 |
|Octubre | 30 |
|Noviembre | 30 |
|Diciembre | 31 |


Ahora espera mis consultas SQL

A veces no quiere devolver todas las respuestas solo unos pocos casos, por ello vamos a hacer una consulta que conozcamos, más menos, el resultado y ver si cumple o no:

Debes devolver todos los rios de España

select rios.nombre
from rios
where rios.pais like "españa"

Si el resultado son solo 4 o 5 ríos, es mejor borrar ese chat y volver a empezar

Una vez conseguido que devuelva todos los resultados podéis ejecutar SQLs como estas:

select meses.nombre, meses.num_dias
from meses
where meses.num_dias > 30


select coches.marca, coches.modelos, coches.annoFabricacion
from coches
where coches.annoFabricacion = 1960
and coches.marca like "F%"


select ciudad.nombre, ciudad.poblacion
from ciudad
where ciudad.poblacion > 100000
and ciudad.pais like "españa"
order by 1


select municipio.nombre, municipio.poblacion
from municipio
where municipio.poblacion > 10000
and municipio.pais like "españa"
and municipio.comunidad = "aragon"
order by municipio.nombre

Puedes ver estos ejemplo en el vídeo de mi canal de Youtube:

Haz click para ver el vídeo en Youtube

Ventajas

  • El SQL es un lenguaje estructurado y formal, si bien lo que usamos no es SQL real se aproxima lo suficiente para beneficiarse de estas ventajas
  • Es fácil y rápido modificar una consulta y ver las diferencias entre dos consultas
  • Es más compacto que el lenguaje escrito lo cual es importante si quieres reducir el número de tokens
  • El resultado y su estructura son predecibles (una tabla en markdown)
  • El propio ChatGPT puede localizar errores en tu petición y sugerir correciones.

Desventajas

  • No siempre entiende exactamente lo que quieres
  • Los comparadores numéricos «= < >» no los entiende muy bien
  • Hay que elegir con mucho cuidado (y prueba y error) los nombres de las «tablas»