Abre o pega un archivo CSV, revisa el Nombre de la tabla y pulsa «Descargar SQLite». Obtendrás un archivo de base de datos .sqlite con una tabla que contiene todas las filas, listo para el shell sqlite3, DB Browser for SQLite, Python o cualquier biblioteca de SQLite. De forma predeterminada todas las columnas son TEXT, así que 000417 sigue siendo 000417. El motor de SQLite se ejecuta como WebAssembly en tu navegador; el CSV nunca se sube.
Cómo convertir CSV a SQLite
- Abre un archivo
.csv,.tsvo.txt, suéltalo sobre la herramienta o pega las filas. Revisa la tabla en Entrada; si hace falta, ajusta el delimitador, la fila de encabezados o la codificación en Configuración de importación. - Revisa el Nombre de la tabla. Al principio es el nombre del archivo con los espacios y signos de puntuación cambiados por guiones bajos:
orders 2026.csvpasa a serorders_2026. - Elige los Tipos de valor, una Clave primaria opcional y si quieres Escribir las celdas vacías como NULL.
- Pulsa «Descargar SQLite» y abre el archivo, por ejemplo con
sqlite3 orders.sqliteySELECT * FROM orders LIMIT 10;.
La primera conversión descarga una sola vez el motor de SQLite (sql.js, compilado a WebAssembly) desde assets.viewcsv.app. Si esa descarga falla, la herramienta muestra un error y puedes volver a intentarlo; tu archivo se queda en este dispositivo.
Para convertir muchos archivos con la misma configuración, elige Por lotes: convertir varios archivos. Cada archivo se convierte en su propia base de datos, con una tabla que lleva el nombre de ese archivo, y todas se descargan juntas en un único ZIP. En un lote, cada archivo debe ocupar 25 MB como máximo.
Qué contiene la base de datos
Una sola tabla, creada con CREATE TABLE "name" (…), con una columna por cada columna del CSV en el orden original y todas las filas insertadas en una única transacción. No hay índices, vistas ni columnas de ID adicionales.
| Nombres de tabla y de columna | Se usan tal como están escritos y entre comillas dobles, así que funcionan los espacios, los signos de puntuación, las palabras reservadas y los nombres en alfabetos no latinos: consúltalos como "order date". Un encabezado en blanco pasa a ser Column 3 y uno repetido, name (2). |
|---|---|
| Mantener todos los valores como texto | Es la opción predeterminada. Todas las columnas se declaran TEXT y guardan cada valor exactamente como está escrito. |
| Detectar números y true/false | Una columna cuyos valores no vacíos son todos números enteros sin ceros a la izquierda pasa a INTEGER; los decimales con 15 cifras significativas como máximo pasan a REAL; las columnas de true/false pasan a INTEGER con 1 y 0, porque SQLite no tiene tipo booleano. Las fechas y todo lo demás se quedan como TEXT. |
| Clave primaria | Opcional. La columna elegida se declara PRIMARY KEY. Sus valores deben ser únicos y no estar vacíos; si no, la herramienta se detiene antes de escribir el archivo. Una clave detectada como número entero se convierte en INTEGER PRIMARY KEY, el alias del rowid de SQLite. |
| Escribir las celdas vacías como NULL | Activada de forma predeterminada. Desactívala para guardar las celdas vacías como la cadena vacía ''. |
Los saltos de línea, las comillas y las comas que hay dentro de los valores entre comillas del CSV se guardan sin cambios dentro del valor.
Problemas habituales al convertir CSV a SQLite
- La conversión se detiene en la clave primaria: la columna elegida tiene un valor vacío o repetido. Busca los duplicados con Validar CSV o en el visor de CSV, elige otra columna o pon Clave primaria en Ninguna.
- No se pudo descargar el motor: el archivo WebAssembly de SQLite viene de
assets.viewcsv.app. Revisa tu conexión, el cortafuegos o el bloqueador de contenido y vuelve a intentarlo. SUM()trata una columna como texto: la columna esTEXT. Vuelve a convertir con Detectar números y true/false; si sigue como texto, algún valor no es un número simple (1,234,12 kg,007). También puedes convertirla en SQL:CAST(total AS REAL).- El archivo es demasiado grande para esta herramienta: la conversión a SQLite admite archivos de hasta 25 MB, 100 000 filas, 250 columnas y 2 millones de celdas. Para un archivo mayor, genera un script con CSV a SQL, que procesa los archivos grandes por partes, y ejecútalo con
sqlite3.
Límites y privacidad
El CSV tiene que poder abrirse en el espacio de trabajo del navegador: hasta 25 MB, 100 000 filas, 250 columnas y 2 millones de celdas. La base de datos se construye en memoria y se exporta como un único archivo.
El motor se ejecuta en un proceso en segundo plano dentro de esta pestaña, así que la página sigue respondiendo y Cancelar lo detiene. Solo se descarga el archivo del motor; ni el CSV ni la base de datos salen de tu dispositivo.
Ejemplo: un archivo de pedidos abierto en la consola sqlite3
Un archivo de pedidos con identificadores con ceros a la izquierda, una fecha vacía y una nota de dos líneas, convertido con Detectar números y true/false, el nombre de tabla orders y order_id como Clave primaria, y abierto después en el shell sqlite3. total pasó a REAL y paid a INTEGER con 1/0, mientras que order_id y shipped_on se quedaron como TEXT. Con la opción predeterminada, Mantener todos los valores como texto, las seis columnas son TEXT y total conserva 129.50.
order_id,customer,total,paid,shipped_on,note 000417,"Okafor, Ada",129.50,true,2026-04-02, 000418,Mei Tan,15,false,,"Leave at door side gate"
sqlite> .schema
CREATE TABLE "orders" ("order_id" TEXT PRIMARY KEY, "customer" TEXT, "total" REAL, "paid" INTEGER, "shipped_on" TEXT, "note" TEXT);
sqlite> SELECT order_id, total, typeof(total), paid, shipped_on, quote(note) FROM orders;
000417|129.5|real|1|2026-04-02|NULL
000418|15.0|real|0||'Leave at door
side gate'Preguntas frecuentes
¿Qué diferencia hay entre esta herramienta y CSV a SQL?
Esta página te da un archivo de base de datos SQLite terminado, listo para abrir. CSV a SQL escribe un script de texto con instrucciones CREATE TABLE e INSERT que ejecutas tú, para SQLite o para PostgreSQL, MySQL o SQL Server, y puede procesar por partes archivos de más de 25 MB.
¿Puedo añadir el CSV a una base de datos que ya tengo?
No directamente: cada conversión crea una base de datos nueva con una tabla. Adjúntala desde tu base de datos con ATTACH 'orders.sqlite' AS src; y copia las filas con INSERT INTO … SELECT * FROM src.orders;.
¿Por qué true y false se guardan como 1 y 0?
SQLite no tiene una clase de almacenamiento booleana; los booleanos son enteros. Con Detectar números y true/false, true pasa a 1 y false a 0. En modo texto se quedan como las cadenas true y false.