Convertidor de CSV a SQL

Introducir datos CSV en una base de datos suele implicar arrancar una herramienta de carga o escribir comandos COPY / LOAD DATA INFILE que solo funcionan con archivos locales. Para conjuntos de datos pequeños (decenas, cientos, unos pocos miles de filas) las sentencias INSERT sin más, que puedes pegar en cualquier consola SQL, suelen ser más rápidas. Esta herramienta toma tu CSV y un nombre de tabla y produce un INSERT por fila, con identificadores entre comillas invertidas y valores entre comillas simples listos para ejecutar.

Cómo se ensambla el SQL

  1. 1

    Pega el CSV

    CSV estándar con fila de encabezado opcional. El analizador maneja celdas entre comillas con separadores integrados.

  2. 2

    Establece el nombre de la tabla

    Los caracteres no alfanuméricos en el nombre de la tabla se reemplazan por guiones bajos; se usa `my_table` si está vacío.

  3. 3

    Las columnas provienen del encabezado

    Si el modo de encabezado está activado, la fila 1 se convierte en la lista de columnas. De lo contrario, las columnas se nombran `column_1`, `column_2`, etc.

  4. 4

    Un INSERT por fila de datos

    Cada fila se convierte en `INSERT INTO table (cols) VALUES (...)`. Los valores están entre comillas simples y las comillas internas se duplican.

Dialectos, comillas y cuándo recurrir a otra cosa

El generador apunta a SQL con formato MySQL con comillas invertidas alrededor de los identificadores y comillas simples alrededor de los valores. La mayoría de las bases de datos lo aceptarán con ajustes menores.

Hoja de trucos de dialecto

Base de datos Comillas de identificador Notas
MySQL comillas invertidas Funciona sin cambios.
MariaDB comillas invertidas Funciona sin cambios.
PostgreSQL comillas dobles Reemplaza ` con " antes de ejecutar.
SQLite comillas dobles Reemplaza ` con " o elimina las comillas de identificador.
SQL Server corchetes cuadrados Reemplaza ` con []; ten cuidado con N'...' para Unicode.

Cómo se escapan los valores

Todos los valores están entre comillas simples y cualquier comilla simple incrustada se duplica (O'Brien se convierte en 'O''Brien'). Esa es la forma SQL-92 y funciona en todas las bases de datos principales. El convertidor no realiza conversión de tipos: todo se emite como un literal de cadena, por lo que la conversión implícita de la base de datos convertirá '42' en un entero cuando la columna sea INT.

Consejos para importaciones limpias

  • Crea la tabla primero. El convertidor emite solo sentencias INSERT, no CREATE TABLE. Combínalo con un esquema que definas a mano o generes desde tu ORM.
  • Divide archivos grandes. Pega de 500 a 1000 filas a la vez si tu cliente SQL tiene un límite de tamaño de sentencia.
  • Envuélvelo en una transacción. Para cualquier cosa que supere unos pocos cientos de filas, rodea el pegado con BEGIN; y COMMIT; (o START TRANSACTION; / COMMIT;). Es mucho más rápido que hacer commit automático de cada sentencia.

Cuándo omitir la generación de SQL

Si tu archivo tiene más de ~50.000 filas, los cargadores masivos nativos (COPY en Postgres, LOAD DATA INFILE en MySQL, bcp en SQL Server) son un orden de magnitud más rápidos que los INSERT por script. Esta herramienta es para importaciones rápidas, sembrado de datos de prueba y migraciones puntuales.

Preguntas frecuentes

No. Solo emite sentencias INSERT. Define el esquema tú mismo con CREATE TABLE de antemano; así mantienes el control sobre los tipos de columna, longitudes y restricciones en lugar de dejar que el convertidor adivine.

Con un cambio: reemplaza las comillas invertidas alrededor de los nombres de tabla y columna con comillas dobles. Los valores están entre comillas simples y se ejecutarán sin cambios en cualquier dialecto SQL-92.

Las comillas simples dentro de los valores se duplican (O''Brien), que es el estándar de escape SQL. Las barras invertidas, signos de porcentaje y guiones bajos pasan literalmente; solo se vuelven especiales en patrones LIKE.

Sí. El CSV se envía a nuestro servidor para generar el SQL. No se almacena y no se añade al enlace de la página.

Herramientas relacionadas