Saltar al contenido

CSV a SQL

CSV to SQL

Genera las sentencias CREATE TABLE e INSERT a partir de una tabla, deduciendo los tipos y en el dialecto que elijas.

Convierte una tabla en sentencias CREATE TABLE e INSERT para PostgreSQL, MySQL, SQLite o SQL Server, con los tipos de columna inferidos de los datos. Muestra las columnas tal como se crearán antes de escribir nada, que es donde atrapas una columna numérica que entró como texto.

🔒 Se ejecuta por completo en tu navegadorsqlcsvconvertdatabase

Suelta el CSV que quieres como SQL

Se lee en esta pestaña. No se sube nada. Se reconocen los archivos guardados por Excel en coreano, japonés, chino y occidental (CP949, Shift_JIS, GBK, Windows-1252).

Cómo se usa

  1. Elige el dialecto

    Decide el estilo de entrecomillado, la sintaxis de autoincremento y el tipo de texto. SQL Server recibe NVARCHAR en lugar de VARCHAR, que es la diferencia entre almacenar 한글 —o una ñ— y almacenar signos de interrogación.

  2. Comprueba los tipos inferidos

    La tabla de encima del SQL muestra cada columna, el identificador que recibirá, su tipo y si admite nulos. Una columna que esperabas INTEGER y aparece como TEXT significa que hay un valor perdido dentro.

  3. Fija el tamaño de lote

    Cien filas por INSERT es un buen valor por defecto. Una por fila es más fácil de depurar y mucho más lenta de ejecutar.

Preguntas frecuentes

¿Por qué todos los identificadores van entre comillas?

Porque una columna llamada order, group o desc es una palabra reservada, y entrecomillar solo cuando hace falta significa acertar la lista de palabras reservadas de cuatro dialectos. Entrecomillar siempre es aburrido y siempre funciona.

¿Los nombres de columna con tildes o en coreano son seguros?

En los cuatro dialectos, entrecomillados, sí. Si tu servidor los rechaza de todos modos, la opción de solo ASCII translitera los identificadores y deja los datos en paz.

¿Qué pasa con las comillas dentro de mis datos?

Se duplican, que es el escape estándar de SQL. En MySQL las barras invertidas también se duplican, porque solo MySQL trata una barra invertida como escape dentro de un literal; sin eso, C:\temp llega a la base de datos con un tabulador dentro.

¿Celda vacía o NULL?

Tú eliges, y importa: en SQL una cadena vacía es un valor y NULL es la ausencia de uno, y se comportan distinto en las comparaciones, en COUNT y en un índice único. NULL es el valor por defecto.

Puede recibir de

Después

Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.