Inicio · Herramientas gratis · CSV a SQL

Convertir CSV a SQL

Suelta un .csv, ponle nombre a la tabla y elige la base de datos. Obtienes un CREATE TABLE con los tipos de columna deducidos de los datos —enteros, decimales, fechas, booleanos, texto con la longitud justa— y las sentencias INSERT agrupadas, listas para pegar en una consola o guardar como .sql. El separador y la codificación se detectan solos, así que un CSV del Excel español, con punto y coma y en Windows-1252, entra sin tocar nada. Los importes con coma decimal se convierten bien; más abajo están los tres casos que tienes que revisar tú. No se sube nada.

Tu CSV

Suelta aquí un .csv, .tsv o .xlsx, o haz clic para elegirlo

¿Lo haces cada mes? Hazlo una vez en TableDI 2, guárdalo como trabajo y vuelve a ejecutarlo el mes que viene. Descargar TableDI 2 gratis

No se sube nada. El archivo lo lee el JavaScript de esta pestaña y no sale de tu ordenador — ningún servidor lo ve, y al cerrar la pestaña los datos desaparecen.

Por qué el importador de la base de datos no basta

LOAD DATA INFILE, COPY y los asistentes de importación necesitan que la tabla exista antes y con los tipos correctos. Deducirlos a ojo en un export de 40 columnas es lo que lleva tiempo, y equivocarse en uno significa que la carga se para a medias o, peor, que todo entra como VARCHAR(255). Esta página escribe el CREATE TABLE y te enseña qué tipo ha recibido cada columna antes de ejecutar nada.

Lo que resuelve de un CSV español

  • Punto y coma. El separador se detecta en las primeras líneas: coma, punto y coma, tabulador o barra vertical.
  • Coma decimal con punto de millar. 1.234,56 y 87,50 se convierten en 1234.56 y 87.5 dentro de una columna DECIMAL(18,4).
  • Codificación. UTF-8 y Windows-1252 se detectan, así que Málaga y A Coruña llegan enteros. En SQL Server los textos llevan el prefijo N para que las tildes sobrevivan.
  • Códigos con ceros a la izquierda. Una columna con 08001 o un NIF como 00012345A se declara como texto, y el cero se conserva.
  • Cabeceras con tildes. Código postal pasa a código_postal: los espacios se cambian por guion bajo y las tildes se mantienen, porque el identificador siempre sale entre comillas del dialecto (acentos graves en MySQL, comillas dobles en PostgreSQL y SQLite, corchetes en SQL Server).

Tres casos que tienes que revisar tú

Esto es lo que la deducción de tipos no hace con datos españoles, medido con el mismo código que ejecuta la página:

  • El símbolo del euro. Una columna con 1.234,56 € no se reconoce como número y queda como texto. No se pierde nada, pero no podrás sumarla en la base de datos. Quita el € del CSV antes.
  • Miles sin decimales. 1.234, sin coma detrás, se lee como uno coma dos tres cuatro, no como mil doscientos treinta y cuatro. Si una columna de unidades usa punto de millar y ningún valor lleva decimales, revisa los INSERT o quita los puntos antes.
  • Fechas día/mes/año. Solo se reconocen como fecha los valores ISO (2026-03-15, con hora opcional). 15/03/2026 queda como texto. Lo mismo sí/no: solo true/false y yes/no se convierten en booleano.

Cuatro dialectos

MySQL y MariaDB, PostgreSQL, SQLite y SQL Server. El dialecto cambia las comillas de los identificadores, los literales booleanos (TRUE/FALSE, o 1/0 en el BIT de SQL Server), los tipos de texto y de fecha, y el máximo de filas por INSERT. El texto se dimensiona según el valor más largo de la columna, en vez del VARCHAR(255) de siempre.

INSERT agrupados

Un INSERT por fila es lento, y un único INSERT gigante choca con el límite de paquete o de parámetros del servidor. Las filas se agrupan —500 por sentencia por defecto, como mucho 1.000 en SQL Server— para que un archivo grande llegue en un número manejable de sentencias. La vista previa enseña los primeros 20.000 caracteres de SQL; el .sql descargado lo lleva todo.

Lo que no hace

  • No conecta con tu base de datos ni ejecuta nada: genera texto SQL.
  • No crea índices, claves primarias ni restricciones.
  • No convierte €, fechas dd/mm/aaaa ni sí/no (ver arriba).

Si este CSV llega cada mes y siempre hay que limpiarlo igual antes de cargarlo, la conversión es lo de menos. TableDI 2 es una aplicación de escritorio para el trabajo con archivos que se repite cada periodo: guarda tus fuentes, tus reglas y la entrega como un trabajo, y el mes que viene pones los archivos nuevos y lo vuelves a ejecutar. Todo funciona en tu propio equipo.

Preguntas frecuentes

¿Con qué bases de datos funciona el SQL?

MySQL y MariaDB, PostgreSQL, SQLite y SQL Server. El dialecto cambia las comillas de los identificadores, los booleanos, los tipos de texto y fecha y el máximo de filas por INSERT.

Mi CSV usa punto y coma y coma decimal, ¿tengo que cambiarlo antes?

No. El punto y coma se detecta solo, y los importes como 1.234,56 se convierten en 1234.56. Lo que sí conviene quitar antes es el símbolo €, porque con él la columna queda como texto.

¿Por qué una columna de fechas sale como VARCHAR?

Porque solo se reconocen fechas en formato ISO (2026-03-15). Las fechas 15/03/2026 se guardan como texto, sin cambiarlas. Si las necesitas como fecha, conviértelas en la base de datos (STR_TO_DATE en MySQL, TO_DATE en PostgreSQL) o pásalas a ISO en el CSV.

¿Puedo sacar solo los INSERT, sin el CREATE TABLE?

Sí: desmarca «Incluir CREATE TABLE». Sirve cuando la tabla ya existe y solo hay que cargar filas.

¿Se sube el CSV a algún servidor?

No. El archivo lo lee el JavaScript de esta pestaña y el SQL se genera en tu ordenador. No hay ninguna petición con tus datos.

¿Hay límite de tamaño?

El límite es la memoria del navegador. Para archivos de cientos de megas, el cargador masivo de tu base de datos es la herramienta adecuada; esta página sirve para escribir el CREATE TABLE que ese cargador necesita.

¿Lo haces cada mes?

En TableDI 2 lo haces una vez y lo guardas como un trabajo. El mes que viene pones los archivos nuevos y lo vuelves a ejecutar.

macOS, Apple Silicon e Intel; la versión de Windows está en camino (qué hacer mientras tanto). Lo gratuito no es una prueba: sin cuenta y sin tarjeta.

Revisado el 2026-10-01 por el equipo de TableDI. ¿Algo mal en esta página? Escríbenos — es un solo buzón, lo leen las personas que hacen TableDI.