Blog

SQL Copilot: no soy experto en bases de datos, así que construí un copiloto

Anderson Sinaluisa4 min de lectura
Por qué construí SQL Copilot, una app de escritorio que convierte lenguaje natural en SQL que entiende tu esquema: consultas complejas, optimización y por qué elegí escritorio en lugar de web.

Voy a empezar con una confesión: no soy un experto en bases de datos.

Llevo años trabajando con ellas. Sé modelar tablas, hacer joins, crear índices y escribir las consultas del día a día sin problema. Pero diría que mi nivel es intermedio. Y hay dos momentos en los que ese nivel se nota:

  1. Cuando tengo que escribir una consulta enorme: varias tablas, subconsultas, agregaciones, ventanas, condiciones que dependen de otras condiciones. Esas consultas “mega complejas” que te toman una tarde y que, al terminar, no estás 100% seguro de que estén bien.
  2. Cuando una consulta funciona pero es lenta, y tengo que optimizarla. Ahí empieza el ciclo de probar, leer documentación, preguntar y volver a probar.

En esos momentos pensaba lo mismo: “ojalá tuviera al lado a alguien que conozca esta base de datos de memoria”. De esa idea nació SQL Copilot.

Antes, una consulta SQL larga escrita a mano; después, una petición en lenguaje natural que SQL Copilot convierte en SQL

La idea: un copiloto que conoce tu esquema

Los chats de IA generales ya escriben SQL bastante bien, pero tienen un problema: no conocen tu base de datos. Tienes que copiar y pegar tablas, explicar relaciones y corregir nombres de columnas inventados. Y cuando la consulta tiene diez tablas, ese ida y vuelta se vuelve más lento que escribirla tú mismo.

SQL Copilot se conecta a tu base de datos, lee el esquema (tablas, columnas, tipos, relaciones) y usa ese contexto para generar SQL que de verdad encaja con tu modelo y tu dialecto. Tú escribes lo que necesitas en lenguaje natural:

“Los 10 clientes con más ingresos en los últimos 30 días, con su ciudad y el número de pedidos.”

Y obtienes la consulta lista para revisar, editar y ejecutar.

Flujo de SQL Copilot: pregunta, esquema, SQL, Safe Mode, revisión y ejecución

Qué hace hoy

  • Generación de SQL con contexto del esquema, en conversación de varios turnos: puedes ir refinando la consulta.
  • Explicar SQL. Pegas cualquier consulta, por compleja que sea, y te la explica paso a paso sin ejecutarla. Esto me ayuda mucho cuando heredo código de otra persona… o de mí mismo de hace seis meses.
  • Explorador del esquema. Tablas, vistas, columnas, índices y relaciones de forma visual.
  • Documentación automática. Genera documentación en Markdown de todo el esquema, lista para GitHub Wiki, Notion o Confluence.
  • Safe Mode. Por defecto solo permite SELECT y exige LIMIT para evitar escaneos gigantes. La IA no modifica tus datos por sorpresa.
  • Credenciales cifradas localmente. Las contraseñas nunca se guardan en texto plano.

Una consulta SELECT con LIMIT pasa por Safe Mode y se ejecuta; un DELETE es bloqueado

Funciona con PostgreSQL, SQL Server y MySQL.

¿Por qué una app de escritorio y no una web?

Fue una de las primeras decisiones y, para mí, la más importante.

Muchas de las bases de datos con las que trabajamos los desarrolladores están en nuestra propia máquina o en nuestra red: el Postgres local del proyecto, una base en Docker, un servidor de desarrollo detrás de una VPN. Una aplicación web, corriendo en un servidor en internet, no puede llegar a localhost:5432 de tu computadora sin túneles, puertos abiertos o configuraciones raras.

Una app de escritorio sí. Se conecta directamente a tus bases locales, igual que cualquier cliente de base de datos que ya usas, sin exponer nada a internet. Además, las credenciales se quedan en tu equipo, que es donde deberían estar.

Por eso SQL Copilot está construido con Tauri y Rust para la parte nativa (conexiones y cifrado), React y TypeScript para la interfaz, y la API de OpenAI para la generación.

Arquitectura de SQL Copilot: la app y tu base de datos viven en tu computadora y solo el esquema viaja a la API de OpenAI

Lo que aprendí construyéndolo

La seguridad no puede depender de la IA. Un modelo puede generar un DELETE con la misma confianza que un SELECT. Por eso el Safe Mode, la validación y la revisión antes de ejecutar son parte de la arquitectura, no un detalle. Escribí sobre esto en Text-to-SQL seguro.

El contexto lo es todo. La diferencia entre un SQL genérico y uno útil está en conocer el esquema. Sin ese contexto, la IA adivina; con él, entiende cómo se relacionan tus tablas.

Construir para tu propio nivel es una ventaja. No hice SQL Copilot para expertos en bases de datos; lo hice para alguien como yo, que sabe lo suficiente para reconocer una buena consulta pero no quiere pasar la tarde escribiéndola. Resulta que somos muchos.

Pruébalo

SQL Copilot está en etapa de acceso anticipado. Puedes conocer más y unirte en chatsql.andersonsinaluisa.com.

Y si te interesa ver cómo voy construyendo mis productos, lo comparto en TikTok: @andydev22.