Vai allo strumento
ViewCSV
Nessun caricamento del file

Convertire un CSV in SQLite

orders.csv· DATI DI ESEMPIO15 righe · 8 colonne
Tipi di valore
Come testo, ogni valore resta esattamente com’è. Il rilevamento usa INTEGER e REAL quando tutti i valori sono compatibili.
orders.csv
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041Ginevra MarinoBolognaChair, ergonomic6199.842026-01-21pending
2001042Leonardo BianchiMilanoCoffee beans 1kg9162.742026-02-03refunded
3001043Leonardo EspositoMilanoDesk lamp285.912026-03-19shipped
4001044Aurora BianchiGenovaUSB-C cable624.822026-04-17shipped
5001045Andrea GrecoTorinoDesk lamp1·2026-05-05shipped
6001046Ginevra BianchiTorinoMonitor 27"8166.922026-06-21paid
7001047 Ginevra Esposito TorinoDesk lamp635.242026-07-17shipped
8001048Giulia FerrariMilanoUSB-C cable1141.912026-08-12paid
9001049Aurora RicciFirenzeNotebook A52108.072026-09-02paid
10001050Francesco GalloRomaUSB-C cable6215.562026-01-15shipped
11001051Alice RossiGenovaNotebook A55126.302026-02-19shipped
12001052Aurora RomanoTorinoCoffee beans 1kg8149.922026-03-18shipped
13001053Francesco GalloTorinoCoffee beans 1kg1164.322026-04-10paid
14001054Giulia FerrariNapoliChair, ergonomic830.592026-05-14paid
15001043Leonardo EspositoMilanoDesk lamp285.912026-03-19shipped

15 righe · 1 file Usa il motore SQLite (WebAssembly), scaricato una sola volta da assets.viewcsv.app. I tuoi dati restano in questa scheda.

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

  1. Apri un file .csv, .tsv o .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.
  2. Controlla il Nome della tabella. All’inizio è il nome del file con spazi e punteggiatura trasformati in trattini bassi: orders 2026.csv diventa orders_2026.
  3. Scegli i Tipi di valore, un’eventuale Chiave primaria e se attivare Scrivi le celle vuote come NULL.
  4. Seleziona «Scarica SQLite» e apri il file, per esempio con sqlite3 orders.sqlite e SELECT * 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 colonneUsati 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/falseUna 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 primariaFacoltativa. 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 NULLAttiva 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.

CSV
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 (shell sqlite3)
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.

Standard e riferimenti