IA en tu dispositivo: profesional y privado.

Convertir CSV a SQL

CSV a SQL con tipos de columna reales, seis dialectos, sin subidas.

  • Se ejecuta en tu dispositivo
  • 6 dialectos · de MySQL a Oracle
  • Un archivo gratis · Lotes con Pro

Suelta aquí un archivo CSV

CSV, TSV o TXT, hasta 25.0 MB

Nada cargado

Añade un archivo CSV o pega texto CSV para ver los datos analizados y el SQL que producen.

Ajustes de SQL
Salida
Tabla
Estilo de nombres
Entrecomillado
Lectura del archivo
0

Cambiar esto vuelve a leer el archivo. Lo demás solo remodela la salida.

Valores
Celdas vacías

Las celdas vacías pasan a NULL por defecto. Añade tus tokens si tu exportación los usa.

Lotes
Pro

La versión gratuita convierte un archivo a la vez. Pro convierte hasta 50 y entrega un ZIP.

Cómo convertir CSV a SQL

  1. 1

    Añade tu CSV

    Arrastra un archivo .csv, .tsv o .txt a la página, o abre el cuadro de pegado y pega texto CSV directamente.

  2. 2

    Elige tu base de datos

    Elige MySQL, PostgreSQL, SQLite, SQL Server, Oracle o SQL estándar. El entrecomillado, el escapado, los nombres de tipo y los literales de fecha siguen tu elección.

  3. 3

    Elige el tipo de sentencia

    Un INSERT por fila, INSERT agrupado, CREATE TABLE, UPDATE, DELETE o MERGE. Para los tres últimos, marca las columnas clave con las que debe emparejar la cláusula WHERE.

  4. 4

    Revisa las columnas

    La pestaña Columnas muestra el tipo inferido para cada columna y el tipo SQL exacto que producirá. Puedes anular cualquiera y desmarcar las columnas que no quieras.

  5. 5

    Genera y descarga

    Genera el script y descarga el archivo .sql o cópialo. En ningún momento se sube nada.

Qué ofrece esta herramienta de CSV a SQL

Genera SQL limpio desde CSV con control de delimitador y codificación, nombre de tabla personalizado, mapeo de cabeceras y exportación rápida. Los valores se escapan según la base de datos que elijas, las columnas reciben tipos reales en lugar de entrecomillarse como texto, y toda la conversión se ejecuta en tu dispositivo.

  • Seis dialectos de base de datos. MySQL y MariaDB, PostgreSQL, SQLite, SQL Server, Oracle y SQL estándar, cada uno con su propio entrecomillado, escapado, nombres de tipo y literales de fecha.
  • Siete tipos de sentencia. Un INSERT por fila, INSERT agrupado de varias filas, CREATE TABLE, DROP + CREATE + INSERT, UPDATE, DELETE y MERGE o UPSERT.
  • Tipos de columna reales. Enteros, enteros grandes, decimales, coma flotante, booleanos, fechas, marcas de tiempo, horas y texto dimensionado, inferidos desde todas las filas y no desde una muestra.
  • Anulación por columna. Si no estás de acuerdo con la inferencia, fija el tipo tú mismo, o desmarca una columna para que nunca llegue a la base de datos.
  • Manejo de NULL. Las celdas vacías pasan a NULL o a cadena vacía, y puedes nombrar tus propios tokens NULL como \N, NA o NULL.
  • Identificadores seguros. Palabras reservadas, nombres que empiezan por dígito, nombres duplicados y nombres demasiado largos para la base de datos se resuelven antes de poder romper el script.
  • Dos vistas previas. Una cuadrícula de datos que muestra lo analizado y el tipo de cada columna, y una vista previa SQL en vivo de las sentencias que vas a descargar.
  • No se sube nada. El archivo se lee, se convierte y se escribe en tu dispositivo, así que funciona sin conexión y en el móvil una vez cargada la página.

Elegir un dialecto SQL

El dialecto es lo primero que conviene fijar, porque cambia mucho más que los nombres de tipo. El entrecomillado, el escapado de cadenas, los literales booleanos y de fecha, la cláusula de identidad y la forma de un upsert son todos distintos, y un script escrito para una base de datos suele ser inválido en otra.

  • MySQL y MariaDB. Identificadores entre acentos graves, barras invertidas escapadas dentro de los literales de cadena, booleanos como 1 y 0, AUTO_INCREMENT y ON DUPLICATE KEY UPDATE para upserts.
  • PostgreSQL. Identificadores entre comillas dobles, barras invertidas intactas porque los literales estándar son el valor por defecto, TRUE y FALSE reales, literales DATE y TIMESTAMP, columnas de identidad y ON CONFLICT DO UPDATE.
  • SQLite. Comillas dobles, afinidad de tipos respetada en lugar de inventada, AUTOINCREMENT sobre una clave primaria entera y ON CONFLICT DO UPDATE.
  • SQL Server. Identificadores entre corchetes, prefijo N en cualquier literal con texto no ASCII para que sobrevivan los acentos, columnas NVARCHAR a juego, IDENTITY con su guarda de INSERT alrededor y MERGE para upserts.
  • Oracle. Comillas dobles, límite de 30 caracteres en identificadores, TO_DATE y TO_TIMESTAMP con máscaras explícitas para que el formato de fecha de la sesión no pueda cambiar el significado, un bloque PL/SQL para el borrado condicional y MERGE contra dual.
  • SQL estándar. Sintaxis ANSI portable para lo que no esté en la lista, o como punto de partida que pienses ajustar.

Cambiar de dialecto nunca vuelve a leer el archivo, así que es instantáneo incluso en una exportación grande. Cámbialo, mira la vista previa SQL y vuelve a cambiarlo hasta que el script sea algo que tu cliente acepte.

Tipos de sentencia explicados

Cada trabajo necesita sentencias distintas. Cargar una tabla nueva no es lo mismo que corregir filas que ya existen, y generar INSERT para lo segundo es como se acaba con duplicados.

  • INSERT. Una sentencia por fila. La salida más legible y la más fácil de editar a mano o de usar para cargar unos cientos de filas.
  • INSERT agrupado. Una sentencia por grupo de filas, con el tamaño de lote bajo tu control. Mucho más rápido de ejecutar en una carga grande y aproximadamente la mitad de tamaño de archivo.
  • CREATE TABLE. Solo la definición de la tabla, con tipos inferidos, NOT NULL donde los datos no tienen huecos y clave primaria opcional.
  • DROP, CREATE e INSERT. Todo el script en un archivo: elimina la tabla anterior si existe, créala y luego llénala. Esta es la opción para una carga repetible.
  • UPDATE. Una sentencia por fila, que fija todas las columnas no clave y empareja por las columnas clave que marques.
  • DELETE. Una sentencia por fila, emparejada por las columnas clave. Útil para eliminar una lista exacta de registros.
  • MERGE o UPSERT. Inserta la fila si es nueva y la actualiza si ya existe. Escrito en la forma que tu base de datos admita realmente.

Columnas clave

UPDATE, DELETE y MERGE necesitan saber qué columnas identifican una fila. Márcalas en la pestaña Columnas. Si no marcas ninguna se usa la primera columna y la herramienta lo indica, porque un UPDATE sin cláusula WHERE reescribiría todas las filas de la tabla. Cuando una columna clave no tiene valor, la sentencia se escribe como IS NULL en lugar de = NULL, que nunca emparejaría nada.

Tipos de columna, y lo que deliberadamente no se adivina

Se lee cada celda de cada fila antes de escribir una sola sentencia, así que los tipos declarados describen el archivo completo y no las primeras miles de filas. Una columna toma el tipo más estrecho que le encaje todo, y cualquier discrepancia la ensancha a texto en vez de descartar un valor.

  • Enteros. Hasta nueve dígitos pasan a entero, hasta diecinueve a entero grande, y más allá a decimal exacto, así que un número de cuenta de veinte dígitos nunca se redondea.
  • Decimales y coma flotante. La precisión y la escala se toman de la parte entera más ancha y la parte fraccionaria más ancha de toda la columna, así que una columna con 1234 y 1.5 se dimensiona para ambos. Los valores en notación exponencial dan una columna de coma flotante.
  • Booleanos. Solo las palabras true, false, yes y no. Más abajo se explica por qué 1 y 0 no entran.
  • Fechas y marcas de tiempo. Solo ISO 8601, y la fecha se valida contra el calendario, así que 2026-02-30 se queda como texto en vez de convertirse en una fecha inválida.
  • Texto. Dimensionado al valor más largo del archivo y redondeado al siguiente escalón, para que la próxima importación no falle por un valor un carácter más largo.

Lo que se queda como texto a propósito

Cuatro casos parecen otra cosa y no lo son. Adivinarlos es como un conversor destruye datos en silencio mientras produce una salida de aspecto impecable.

  • Ceros iniciales. 007, 01730 y 0044 son un puesto, un código postal y un prefijo telefónico. Como enteros pasan a 7, 1730 y 44, y los ceros desaparecen de la base de datos para siempre.
  • Un más inicial. +15551234567 encaja perfectamente como entero y es un número de teléfono. Como número pierde el más y su significado.
  • Fechas ambiguas. 03/04/2026 es el 3 de abril en casi todo el mundo y el 4 de marzo en Estados Unidos, y nada en un CSV lo resuelve. Una columna entera puede ser consistente bajo ambas lecturas durante años.
  • Marcas de una sola letra. Una columna de t, f, y y n es una convención booleana y también es una nota, una inicial y un código de categoría. Las palabras true, false, yes y no son inequívocas; las letras no.

Nada de esto es un muro. Todos estos casos se pueden fijar a mano en la pestaña Columnas, y una anulación explícita se respeta al pie de la letra, incluidas las letras sueltas. La diferencia es que nunca se adivina por ti. Cuando una anulación no puede satisfacerse para una celda concreta, ese valor se escribe como NULL y la herramienta te dice cuántas celdas se vieron afectadas, en vez de hacer fallar el script cientos de sentencias después.

NULL, cadenas vacías y valores ausentes

Una medición ausente y una medición de nada son dos hechos distintos, y en cuanto ambos son una cadena vacía en la base de datos ya nada puede distinguirlos. La versión anterior de esta herramienta escribía cada celda vacía como cadena vacía sin forma de cambiarlo.

  • Celdas vacías como NULL. El valor por defecto, y lo que casi toda importación quiere. La columna también se marca como aceptadora de NULL en el CREATE TABLE.
  • Celdas vacías como cadena vacía. Para cargar en una tabla existente cuyas columnas están declaradas NOT NULL.
  • Tokens NULL propios. Las exportaciones de mysqldump usan \N, y muchas hojas mantenidas a mano usan NA, N/A o la palabra NULL. Indica los que use tu archivo, separados por comas, y pasarán a ser NULL reales.
  • NULL en una columna clave. Se escribe como IS NULL en la cláusula WHERE, nunca como = NULL, que en SQL nunca es cierto y no emparejaría ninguna fila.
  • Caracteres que ninguna base de datos puede guardar. Los bytes nulos se eliminan y se cuentan, porque PostgreSQL los rechaza de plano mientras que MySQL trunca el valor en ese punto. Se te dice cuántos se vieron afectados en lugar de darte tres respuestas erróneas distintas.

Nombres de tabla y de columna

Una cabecera de hoja de cálculo no es un identificador SQL, y convertir una en otro es donde la versión anterior de esta herramienta producía scripts que ninguna base de datos aceptaba. Hay que resolver cuatro problemas antes de que un nombre sea seguro de escribir.

  • Palabras reservadas. order, group, key, desc, from y table son cabeceras de columna corrientes y todas ellas están reservadas. Se entrecomillan automáticamente.
  • Nombres que empiezan por dígito. 1st y 2nd no pueden escribirse sin comillas en ningún dialecto. Se entrecomillan en vez de deformarse.
  • Nombres duplicados. col-1 y col.1 se pliegan ambos a col_1. El segundo pasa a col_1_2, y la comprobación no distingue mayúsculas porque MySQL en Windows y SQL Server tratan Total y total como la misma columna.
  • Nombres demasiado largos. Oracle permite treinta caracteres, PostgreSQL sesenta y tres, MySQL sesenta y cuatro. Los nombres largos se recortan para encajar, y cualquier colisión que ese recorte cree se resuelve después.

Dos estilos de nombre

Nombres limpios pliega una cabecera a minúsculas, dígitos y guiones bajos, así que First Name pasa a first_name y Café Total pasa a cafe_total. Mantener original conserva la cabecera exactamente como la escribiste y la entrecomilla donde la base de datos lo exija. Deliberadamente no hay una tercera opción que se salte el entrecomillado, porque una palabra reservada o un espacio no tienen escritura sin comillas y el ajuste solo podría producir un script roto.

¿Por qué convertir CSV a SQL?

Un CSV es como salen los datos de una hoja de cálculo y un script SQL es como entran en una base de datos. Pasar de uno a otro a mano es lento y propenso a errores, y los errores son de los silenciosos.

  • Poblar una base de datos. Datos de referencia, tablas de consulta y fixtures viven en hojas de cálculo y tienen que llegar a la base de datos como sentencias repetibles y revisables.
  • Fixtures de pruebas. Un script generado se puede versionar junto al código y volver a ejecutar en cada entorno nuevo.
  • Migraciones y cargas puntuales. Un script se puede leer, editar y aplicar por el proceso de revisión que la base de datos ya tenga, cosa que una importación masiva por interfaz no permite.
  • Trabajar sin asistente de importación. Muchas bases de datos en producción solo son accesibles por un cliente SQL, y un archivo .sql es el único formato que todos aceptan.
  • Corregir filas existentes. UPDATE y MERGE convierten una hoja corregida en las sentencias exactas necesarias para alinear una tabla en vivo con ella.

Opciones de lectura explicadas

Estos ajustes controlan cómo se lee el archivo, antes de escribir ningún SQL. Cambiar uno de ellos vuelve a leer el archivo; todo lo demás solo remodela la salida.

  • Delimitador. Automático, coma, punto y coma, tabulador o barra vertical. El automático analiza una muestra con cada candidato y elige el que produce anchos de fila más consistentes, así que una coma dentro de una dirección entrecomillada no puede engañarlo.
  • Carácter de comillas. Automático, comilla doble, comilla simple o ninguno. Existen archivos entrecomillados con apóstrofes, y leerlos con el carácter equivocado fusiona filas.
  • Codificación. Automática, UTF-8, UTF-16LE, UTF-16BE, Windows-1252 o ISO-8859-1. Una marca de orden de bytes en el archivo siempre gana al desplegable, porque el archivo declarando su propia codificación vence a una suposición.
  • La primera fila es cabecera. Activado por defecto. Desactívalo y las columnas se nombran por posición, y la primera fila se trata como datos.
  • Saltar filas. Para exportaciones que empiezan con un título, una marca de fecha o una línea en blanco antes de la cabecera real.
  • Inferir tipos de columna. Activado por defecto. Desactívalo y cada columna se escribe como texto dimensionado, que es lo que quieres al cargar en una tabla de staging existente.

Cuándo usar cada delimitador

Deja el delimitador en Automático primero. Fíjalo a mano solo cuando la vista previa muestre que el archivo se lee mal.

  • Coma. El valor por defecto, y de donde viene el nombre del formato. La mayoría de exportaciones de software en inglés.
  • Punto y coma. Lo que escribe Excel en casi toda Europa, donde la coma es el separador decimal.
  • Tabulador. Archivos TSV, y todo lo copiado directamente de una hoja de cálculo a un archivo de texto.
  • Barra vertical. Habitual en pipelines de datos y extracciones de mainframe, donde los propios datos pueden contener comas y puntos y coma.

Archivos admitidos y límites

La lista es cerrada. Cualquier cosa que no esté en ella se rechaza en el diálogo de archivo con una frase que dice qué es y adónde llevarla, en vez de aceptarse y fallar después.

Qué puedes convertir

  • .csv con cualquiera de los cuatro delimitadores y cualquiera de las cinco codificaciones.
  • .tsv exportaciones separadas por tabuladores.
  • .txt texto delimitado bajo cualquier extensión que la hoja de cálculo haya escrito.
  • Texto pegado. Pega CSV directamente en la página sin guardar antes un archivo.

Qué se rechaza, y adónde ir en su lugar

  • Libros de Excel. Un .xlsx o .xls es un archivo comprimido, no texto delimitado. Conviértelo antes a CSV.
  • JSON. Usa antes la herramienta de JSON a CSV y trae aquí el resultado.
  • Archivos con una imagen o un comprimido bajo un nombre .csv. Se detectan por el contenido y no por la extensión, y se rechazan antes de analizar nada.
  • Archivos vacíos. Se rechazan con un mensaje en vez de producir un script vacío.

Límites de tamaño y de lote

La versión gratuita convierte un archivo a la vez, de hasta 25 MB, con todos los dialectos, tipos de sentencia, anulaciones de tipo y ajustes de NULL disponibles. Pro convierte hasta 50 archivos en una tirada y los entrega en un único ZIP, y está limitada por lo que tu dispositivo pueda manejar en lugar de por una cifra fija. Nada relativo a la corrección del SQL está tras el muro de pago, porque un script que no se ejecuta no es un acabado premium.

Cómo funciona la generación de CSV a SQL

El archivo se decodifica, el delimitador y el carácter de comillas se detectan analizando una muestra y puntuando lo rectangular que resulta cada lectura, y las filas se analizan con un escáner que entiende campos entrecomillados con delimitadores y saltos de línea dentro. Después se clasifica cada celda, y cada columna toma el tipo más estrecho que encaje con todos sus valores.

El script se escribe por piezas y se transmite directamente a un archivo en lugar de montarse como un único bloque enorme de texto, que es lo que permite producir un script de 23 MB sin que la página deje de responder. La vista previa muestra las primeras sentencias de inmediato, para que veas lo que vas a descargar antes de descargarlo.

Nada sale de tu dispositivo

No hay paso de subida ni servidor implicado en la conversión. El archivo se lee del disco a la página, se convierte allí y se vuelve a escribir como descarga. Una vez cargada la página puedes desconectarte de la red y sigue funcionando, que es la única versión de una promesa de privacidad que puedes comprobar por ti mismo.

Una exportación de 10 MB con 104.000 filas se lee, se tipa y se escribe como un script SQL de 23 MB en aproximadamente un segundo, sin que la página llegue a detenerse.

Preguntas frecuentes

¿Qué SQL genera esta herramienta y cómo?

Analiza tu CSV, deduce qué contiene cada columna y escribe las sentencias que elijas: un INSERT por fila, un INSERT agrupado de varias filas, un CREATE TABLE con tipos de columna reales, un UPDATE o DELETE emparejado por columnas clave, o un MERGE / UPSERT. Los identificadores se entrecomillan solo donde la base de datos lo necesita, los valores se escapan según el dialecto elegido y los números se escriben como números, no como cadenas entrecomilladas.

¿Se mantienen privados mis datos CSV?

Sí. Toda la conversión se ejecuta en tu dispositivo y no se sube nada, así que datos semilla, exportaciones de clientes y registros confidenciales nunca salen de la máquina en la que estás. Eso también significa que la herramienta sigue funcionando sin conexión una vez cargada la página.

¿Qué bases de datos y tipos de sentencia admite?

Seis dialectos: MySQL y MariaDB, PostgreSQL, SQLite, SQL Server, Oracle y SQL estándar. Siete tipos de sentencia: INSERT, INSERT agrupado, CREATE TABLE, DROP + CREATE + INSERT, UPDATE, DELETE y MERGE / UPSERT. Todos los dialectos y todos los tipos de sentencia son gratuitos.

¿Cómo se deciden los tipos de columna y puedo cambiarlos?

Se lee cada celda de cada fila, y una columna pasa a ser entero, decimal, booleano, fecha, marca de tiempo o texto según lo que realmente contiene. Lo ambiguo se queda como texto a propósito: valores con ceros iniciales como 007 conservan sus ceros, y fechas como 03/04/2026 nunca se adivinan como día primero o mes primero. La pestaña Columnas muestra lo inferido y te deja anular cualquier columna.

¿Qué pasa con las celdas vacías, las comillas y las barras invertidas?

Las celdas vacías pasan a NULL por defecto, y puedes cambiarlas a cadena vacía o añadir tus propios tokens NULL como \N o NA. Las comillas simples dentro de los valores se duplican, y las barras invertidas se escapan solo para MySQL, porque MySQL trata la barra invertida como carácter de escape dentro de una cadena mientras que PostgreSQL, SQLite, SQL Server y Oracle no. Los valores no ASCII llevan prefijo N en SQL Server para que el texto acentuado sobreviva.

¿Qué delimitadores, comillas y codificaciones admite?

El delimitador y el carácter de comillas se detectan analizando una muestra y puntuando la consistencia del resultado, así que una coma dentro de una dirección entrecomillada no lo engaña. También puedes fijar coma, punto y coma, tabulador o barra vertical a mano. Los archivos se leen como UTF-8, UTF-16LE, UTF-16BE, Windows-1252 o ISO-8859-1, y una marca de orden de bytes en el archivo siempre tiene prioridad sobre el desplegable.

¿Es gratis y qué tamaño de archivo puedo convertir?

Todos los dialectos, tipos de sentencia, anulaciones de tipo y ajustes de NULL son gratuitos. La versión gratuita convierte un archivo a la vez de hasta 25 MB; Pro añade lotes de hasta 50 archivos entregados en un único ZIP, y está limitada por lo que tu dispositivo pueda manejar en lugar de por una cifra fija.

4.8de 5

de 128 valoraciones

Valora esta herramienta

Toca una estrella — es un segundo