Apri o incolla un file CSV, controlla il Nome della tabella e seleziona «Scarica SQLite». Ottieni un file di database .sqlite con una tabella che contiene tutte le righe, pronto per la shell sqlite3, DB Browser for SQLite, Python o qualsiasi libreria SQLite. Per impostazione predefinita ogni colonna è TEXT, quindi 000417 resta 000417. Il motore SQLite gira come WebAssembly nel tuo browser; il CSV non viene mai caricato.
Come convertire un CSV in SQLite
- Apri un file
.csv,.tsvo.txt, trascinalo sullo strumento oppure incolla le righe. Controlla la tabella in Dati di origine; se serve, imposta delimitatore, riga di intestazione o codifica in Impostazioni di importazione. - Controlla il Nome della tabella. All’inizio è il nome del file con spazi e punteggiatura trasformati in trattini bassi:
orders 2026.csvdiventaorders_2026. - Scegli i Tipi di valore, un’eventuale Chiave primaria e se attivare Scrivi le celle vuote come NULL.
- Seleziona «Scarica SQLite» e apri il file, per esempio con
sqlite3 orders.sqliteeSELECT * FROM orders LIMIT 10;.
La prima conversione scarica una sola volta il motore SQLite (sql.js, compilato in WebAssembly) da assets.viewcsv.app. Se il download non riesce, lo strumento mostra un errore e puoi riprovare; il tuo file resta su questo dispositivo.
Per convertire molti file con le stesse impostazioni, scegli Conversione multipla: più file insieme. Ogni file diventa un database a sé, con una tabella che porta il nome del file, e si scaricano tutti insieme in un unico ZIP. Nella conversione multipla ogni file non può superare i 25 MB.
Che cosa contiene il database
Una sola tabella, creata con CREATE TABLE "name" (…), con una colonna per ogni colonna del CSV nell’ordine originale e tutte le righe inserite in un’unica transazione. Non ci sono indici, viste o colonne ID aggiuntivi.
| Nomi di tabelle e colonne | Usati esattamente come sono scritti e racchiusi tra virgolette doppie, quindi spazi, punteggiatura, parole riservate e nomi in alfabeti non latini funzionano: nelle query scrivili come "order date". Un’intestazione vuota diventa Column 3 e una ripetuta name (2). |
|---|---|
| Tratta tutti i valori come testo | È l’impostazione predefinita. Ogni colonna viene dichiarata TEXT e memorizza ogni valore esattamente come è scritto. |
| Riconosci numeri e true/false | Una colonna i cui valori non vuoti sono tutti numeri interi senza zeri iniziali diventa INTEGER; i decimali con al massimo 15 cifre significative diventano REAL; le colonne true/false diventano INTEGER con 1 e 0, perché SQLite non ha un tipo booleano. Le date e tutto il resto restano TEXT. |
| Chiave primaria | Facoltativa. La colonna scelta viene dichiarata PRIMARY KEY. I suoi valori devono essere univoci e non vuoti, altrimenti lo strumento si ferma prima di scrivere il file. Una chiave riconosciuta come numero intero diventa INTEGER PRIMARY KEY, l’alias del rowid di SQLite. |
| Scrivi le celle vuote come NULL | Attiva per impostazione predefinita. Disattivala per memorizzare le celle vuote come stringa vuota ''. |
A capo, virgolette e virgole contenuti nei valori CSV tra virgolette vengono memorizzati nel valore senza modifiche.
Risoluzione dei problemi
- La conversione si ferma sulla chiave primaria. La colonna scelta ha un valore vuoto o ripetuto. Trova i duplicati con Convalida CSV o con il Visualizzatore CSV, scegli un’altra colonna oppure imposta Chiave primaria su «Nessuna».
- Non è stato possibile scaricare il motore. Il file WebAssembly di SQLite arriva da
assets.viewcsv.app. Controlla la connessione, il firewall o il blocco contenuti, poi riprova. - `SUM()` tratta una colonna come testo. La colonna è
TEXT. Converti di nuovo con Riconosci numeri e true/false; se resta comunque testo, un valore non è un numero semplice (1,234,12 kg,007). In alternativa fai la conversione in SQL:CAST(total AS REAL). - Il file è troppo grande per questo strumento. La conversione in SQLite funziona con file fino a 25 MB, 100.000 righe, 250 colonne e 2 milioni di celle. Per un file più grande genera uno script con Da CSV a SQL, che elabora in streaming i file grandi, ed eseguilo con
sqlite3.
Limiti e privacy
Il CSV deve potersi aprire nell’area di lavoro del browser: fino a 25 MB, 100.000 righe, 250 colonne e 2 milioni di celle. Il database viene costruito in memoria ed esportato come un unico file.
Il motore gira in un worker in background in questa scheda del browser: la pagina resta reattiva e Annulla interrompe la conversione. Viene scaricato solo il file del motore; il CSV e il database non lasciano mai il tuo dispositivo.
Esempio
Un file di ordini con ID con zeri iniziali, una data vuota e una nota su due righe, convertito con Riconosci numeri e true/false, nome di tabella orders e order_id come Chiave primaria, poi aperto con la shell sqlite3. total è diventata REAL e paid INTEGER 1/0, mentre order_id e shipped_on sono rimaste TEXT. Con l’impostazione predefinita Tratta tutti i valori come testo tutte e sei le colonne sono TEXT e 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'Domande frequenti
Che differenza c’è con Da CSV a SQL?
Questa pagina ti dà un file di database SQLite finito, da aprire direttamente. Da CSV a SQL scrive invece uno script di testo con istruzioni CREATE TABLE e INSERT che esegui tu, per SQLite oppure per PostgreSQL, MySQL o SQL Server, e può elaborare in streaming file oltre i 25 MB.
Posso aggiungere il CSV a un database esistente?
Non direttamente: ogni conversione crea un nuovo database con una tabella. Collegalo dal tuo database esistente con ATTACH 'orders.sqlite' AS src; e copia le righe con INSERT INTO … SELECT * FROM src.orders;.
Perché true e false vengono memorizzati come 1 e 0?
SQLite non ha una classe di memorizzazione booleana: i booleani sono interi. Con Riconosci numeri e true/false, true diventa 1 e false diventa 0. In modalità testo restano le stringhe true e false.