Cómo usar: CSV y Excel a SQL
- Pega el CSV o las celdas copiadas de Excel, abre un archivo
.csv/.xlsxo haz clic en Cargar ejemplo. - Elige el dialecto de tu base de datos e introduce el nombre de la tabla.
- Selecciona las sentencias que necesitas:
CREATE TABLEcon los tipos detectados,DROP TABLE, una transacción y cuántas filas van en cadaINSERT. - Revisa los tipos de columna detectados en la vista previa y luego pulsa Copiar o Descargar .sql y ejecútalo en tu cliente de base de datos.
¿Qué es un convertidor de CSV a SQL?
Un convertidor de CSV a SQL transforma las filas de una hoja de cálculo en sentencias SQL que una base de datos puede ejecutar: una sentencia CREATE TABLE que define las columnas y sentencias INSERT INTO … VALUES que añaden los datos. Es la forma más rápida de cargar una exportación puntual, rellenar una base de datos de desarrollo o pasar datos de Excel a MySQL o PostgreSQL sin usar un asistente de importación.
CREATE TABLE `customers` (
`id` INT NOT NULL,
`name` VARCHAR(16),
`signup_date` DATE,
`monthly_spend` DECIMAL(10,2),
PRIMARY KEY (`id`)
);
INSERT INTO `customers` (`id`, `name`, `signup_date`, `monthly_spend`) VALUES
(1, 'Ada Lovelace', '2024-01-15', 49),
(4, 'O''Brien, Pat', '2024-04-09', 49);
Cómo se detectan los tipos de columna
Se revisa cada valor de una columna y se elige el tipo más estrecho que encaja con todos ellos. La vista previa muestra el resultado como una etiqueta encima de cada columna.
| Valores de la columna | MySQL | PostgreSQL | SQL Server |
|---|---|---|---|
| Números enteros | INT / BIGINT | INTEGER / BIGINT | INT / BIGINT |
| Decimales | DECIMAL(p,s) | NUMERIC(p,s) | DECIMAL(p,s) |
| true / false | TINYINT(1) | BOOLEAN | BIT |
2024-01-15 | DATE | DATE | DATE |
2024-01-15 14:30:00 | DATETIME | TIMESTAMP | DATETIME2 |
| Texto | VARCHAR(n) / TEXT | VARCHAR(n) / TEXT | NVARCHAR(n) / NVARCHAR(MAX) |
Las columnas de texto reciben una longitud de VARCHAR redondeada al alza a partir del valor más largo (16, 32, 50, 100, 255…). Revisa las longitudes antes de cargar datos de producción, ya que una columna que parece corta en tu muestra puede contener valores más largos más adelante.
Escapado y diferencias entre dialectos
- Las comillas dentro del texto se duplican (
O'Brien→'O''Brien'); la salida de MySQL también escapa las barras invertidas. - Los identificadores se entrecomillan con acentos graves (MySQL), comillas dobles (PostgreSQL, SQLite, Oracle) o corchetes (SQL Server), así que palabras reservadas como
orderogroupfuncionan como nombres de columna. - Los inserts de varias filas son mucho más rápidos que una sentencia por fila. SQL Server permite como máximo 1000 filas por lista
VALUES, y Oracle usaINSERT ALL … SELECT 1 FROM DUAL. - Las celdas vacías se convierten en
NULLpor defecto; desmarca la opción si quieres insertar cadenas vacías.
Consejos para importaciones grandes
Envuelve los inserts en una transacción para que una fila fallida no deje la mitad de los datos cargada, y usa lotes de entre 500 y 1000 filas. Para millones de filas, los cargadores masivos nativos como LOAD DATA INFILE de MySQL o COPY de PostgreSQL son todavía más rápidos. ¿Tienes JSON en lugar de CSV? Usa JSON a SQL y diseña una tabla a mano con el generador de CREATE TABLE. Ordena el resultado con el formateador de SQL.
También se busca como: csv a sql, excel a sql, convertir csv a sql insert, csv a mysql, excel a mysql, csv a postgresql, xlsx a sql, generador de insert sql.
Herramientas que combinan con: CSV y Excel a SQL
- SQL a JSON, CSV y Excel — Pega un volcado SQL o unas cuantas sentencias INSERT y obtén las filas en JSON, CSV o en un libro de Excel con una hoja por tabla.
- Excel a JSON — Abre un libro .xlsx o pega celdas directamente desde Excel o Google Sheets y obtén JSON limpio.
- CSV a JSON — Pega CSV o TSV y obtén un array JSON de objetos.
- JSON a Excel — Convierte un array JSON en un libro de Excel real.
Preguntas frecuentes
¿Cómo convierto una hoja de Excel en sentencias SQL INSERT?
¿Qué bases de datos son compatibles?
¿Puedo obtener una sentencia INSERT por fila?
¿Por qué cambian los nombres de mis columnas?
signup_date, lo que evita problemas con las comillas. Desmárcala si quieres conservar el texto original del encabezado.