CSV a SQL

Genera instrucciones SQL INSERT a partir de un CSV

Archivos subidos: hasta 400 000 filas (incluida la fila de encabezado, archivos de hasta 150 MB). Texto pegado: hasta 65 000 filas. La conversión se hace en tu navegador; el botón «Cancelar» la detiene.

Haz clic o arrastra un archivo .csv aquíElige un archivo .csv

Acerca de CSV a SQL

«CSV a SQL» escribe una instrucción CREATE TABLE y una instrucción INSERT por cada fila de datos a partir de un archivo .csv o de CSV pegado. Elige primero la base de datos: SQL estándar (PostgreSQL, SQLite), MySQL / MariaDB o SQL Server. Los nombres de tabla y de columna se delimitan, y las cadenas se escapan, como espera esa base de datos. Los tipos de columna se dimensionan según tus datos: INTEGER, BIGINT o DECIMAL para las columnas de números, VARCHAR (NVARCHAR en SQL Server) tan largo como el valor más largo para las demás. La herramienta solo escribe texto SQL; nunca se conecta a una base de datos.

Ejemplo

Un CSV pequeño pegado con el nombre de tabla predeterminado, y el SQL que devuelve la herramienta:

CSV

id,name,price
1,Ann,12.5
2,O'Brien,8

SQL

CREATE TABLE "my_table" (
  "id" INTEGER,
  "name" VARCHAR(7),
  "price" DECIMAL(3, 1)
);

INSERT INTO "my_table" ("id", "name", "price") VALUES (1, 'Ann', 12.5);
INSERT INTO "my_table" ("id", "name", "price") VALUES (2, 'O''Brien', 8);

Cómo convertir CSV a SQL

  1. 1Elige el destino en «Base de datos» y escribe un «Nombre de la tabla», o deja my_table.
  2. 2Añade los datos: un archivo .csv mediante la zona de subida, o texto CSV en «O pega CSV aquí».
  3. 3Comprueba que «Delimitador:» muestra el separador correcto y, para un archivo, que «Codificación:» muestra el juego de caracteres correcto.
  4. 4Haz clic en «Convertir».
  5. 5Para un archivo, haz clic en «Descargar» para guardar converted.sql; para un texto pegado, el SQL aparece en «Salida SQL» con un botón «Copiar».

Formatos y límites

Entrada
Un archivo .csv (de hasta 150 MB) o texto CSV pegado en la página
Salida
Texto SQL: CREATE TABLE más un INSERT por fila
Bases de datos
SQL estándar (PostgreSQL, SQLite), MySQL / MariaDB, SQL Server
Filas de un archivo
400 000 en una computadora, 65 000 en teléfonos y tabletas, incluida la fila de encabezado
Filas de texto pegado
65 000 en todos los dispositivos

Dónde se procesa tu archivo

El CSV se analiza y el SQL se escribe en tu navegador; tu archivo y los datos que pegas no se suben, y no se contacta con ninguna base de datos. Si se produce un error, su texto, sin nombres de archivo ni texto citado, se nos envía con el nombre de la herramienta y la versión de tu navegador.

Preguntas frecuentes

¿Los tipos de columna se dimensionan según los datos?

Sí. Los números enteros de hasta 9 dígitos dan INTEGER, los de 10 a 15 dígitos BIGINT, y los decimales DECIMAL con exactamente los dígitos que necesitan. Un valor con más de 15 dígitos significativos o con exponente convierte su columna en texto: VARCHAR (NVARCHAR en SQL Server) tan largo como el valor más largo, o TEXT, LONGTEXT o NVARCHAR(MAX) más allá del límite. Desmarca «Columnas numéricas como INTEGER / DECIMAL» para tener solo columnas de texto.

¿Son seguros los nombres con espacios o palabras reservadas?

Sí. Cada nombre de tabla y de columna se delimita para la base de datos elegida: comillas dobles en SQL estándar, acentos graves en MySQL / MariaDB, corchetes en SQL Server, y un delimitador dentro de un nombre se duplica. Por eso, un encabezado como unit price u order sigue dando SQL válido.

¿Se escapan los apóstrofos de los valores?

Sí. Un apóstrofo se duplica, así que O'Brien se escribe 'O''Brien'; MySQL / MariaDB también duplica las barras invertidas, y las cadenas de SQL Server llevan el prefijo N. Una celda vacía pasa a ser NULL en una columna numérica y una cadena vacía en una columna de texto.

¿El CSV pegado admite menos filas que un archivo?

Sí, en una computadora: el texto pegado se detiene en 65 000 filas porque se guarda en la página, mientras que un archivo puede tener 400 000 filas y ocupar hasta 150 MB. En teléfonos y tabletas, ambos límites son de 65 000 filas, incluida la fila de encabezado.

Consejos y trucos

  • ✓Las fechas no se detectan: cambia su tipo VARCHAR o NVARCHAR por DATE o TIMESTAMP en la instrucción CREATE TABLE antes de ejecutarla.
  • ✓Para volver a llevar instrucciones INSERT a una hoja de cálculo, usa «SQL a CSV».

Herramientas relacionadas