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:
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»