Open of plak een CSV-bestand, controleer de Tabelnaam en kies ‘SQLite downloaden’. Je krijgt een .sqlite-databasebestand met één tabel waarin alle rijen staan, klaar voor de sqlite3-shell, DB Browser for SQLite, Python of elke SQLite-bibliotheek. Standaard is elke kolom TEXT, dus 000417 blijft 000417. De SQLite-engine draait als WebAssembly in je browser; het CSV-bestand wordt nooit geüpload.
Zo zet je CSV om naar SQLite
- Open een
.csv-,.tsv- of.txt-bestand, sleep het naar de tool of plak rijen. Controleer de tabel onder Invoer; stel zo nodig het scheidingsteken, de kopregel of de codering in onder Importinstellingen. - Controleer de Tabelnaam. Die begint als de bestandsnaam, met spaties en leestekens omgezet in underscores, dus
orders 2026.csvwordtorders_2026. - Kies de Waardetypen, eventueel een Primaire sleutel, en of je Lege cellen als NULL schrijven wilt.
- Kies ‘SQLite downloaden’ en open het bestand, bijvoorbeeld met
sqlite3 orders.sqliteenSELECT * FROM orders LIMIT 10;.
Bij de eerste omzetting wordt de SQLite-engine (sql.js, gecompileerd naar WebAssembly) eenmalig gedownload van assets.viewcsv.app. Mislukt die download, dan toont de tool een foutmelding en kun je het opnieuw proberen; je bestand blijft op dit apparaat.
Wil je veel bestanden met dezelfde instellingen omzetten? Kies dan Batch: meerdere bestanden omzetten. Elk bestand wordt een eigen database, met een tabel die naar dat bestand is genoemd, en ze worden samen als één ZIP-bestand gedownload. In een batch mag elk bestand maximaal 25 MB zijn.
Wat er in de database staat
Eén tabel, gemaakt met CREATE TABLE "name" (…), met één kolom per CSV-kolom in de oorspronkelijke volgorde. Alle rijen worden in één transactie ingevoegd. Er zijn geen extra indexen, views of id-kolommen.
| Tabel- en kolomnamen | Precies zo gebruikt als ze er staan en tussen dubbele aanhalingstekens gezet, dus spaties, leestekens, gereserveerde woorden en niet-Latijnse namen werken: vraag ze op als "order date". Een lege kolomnaam wordt Column 3 en een dubbele name (2). |
|---|---|
| Alle waarden als tekst bewaren | De standaard. Elke kolom wordt gedeclareerd als TEXT en bewaart elke waarde precies zoals die er staat. |
| Getallen en true/false herkennen | Een kolom waarvan alle niet-lege waarden gehele getallen zonder voorloopnullen zijn, wordt INTEGER; decimale getallen met maximaal 15 significante cijfers worden REAL; kolommen met true/false worden INTEGER met 1 en 0, omdat SQLite geen booleaans type heeft. Datums en al het andere blijven TEXT. |
| Primaire sleutel | Optioneel. De gekozen kolom wordt gedeclareerd als PRIMARY KEY. De waarden moeten uniek en niet leeg zijn, anders stopt de tool voordat het bestand wordt geschreven. Een herkende sleutel met gehele getallen wordt INTEGER PRIMARY KEY, de rowid-alias van SQLite. |
| Lege cellen als NULL schrijven | Standaard aan. Zet het uit om lege cellen op te slaan als de lege tekenreeks ''. |
Regeleinden, aanhalingstekens en komma’s binnen CSV-waarden tussen aanhalingstekens worden ongewijzigd in de waarde opgeslagen.
Problemen oplossen
- De omzetting stopt bij de primaire sleutel. De gekozen kolom bevat een lege of herhaalde waarde. Zoek dubbele waarden met CSV valideren of de CSV-viewer, kies een andere kolom, of zet Primaire sleutel op Geen.
- De engine kon niet worden gedownload. Het WebAssembly-bestand van SQLite komt van
assets.viewcsv.app. Controleer je verbinding, firewall of contentblocker en probeer het opnieuw. - `SUM()` behandelt een kolom als tekst. De kolom is
TEXT. Zet het bestand opnieuw om met Getallen en true/false herkennen. Blijft de kolom tekst, dan is één waarde geen gewoon getal (1,234,12 kg,007). Of zet hem om in SQL:CAST(total AS REAL). - Het bestand is te groot voor deze tool. Omzetten naar SQLite werkt met bestanden tot 25 MB, 100.000 rijen, 250 kolommen en 2 miljoen cellen. Maak voor een groter bestand een script met CSV naar SQL, dat grote bestanden in delen verwerkt, en voer het uit met
sqlite3.
Grenzen en privacy
Het CSV-bestand moet in de werkruimte van de browser kunnen openen: tot 25 MB, 100.000 rijen, 250 kolommen en 2 miljoen cellen. De database wordt in het geheugen opgebouwd en als één bestand geëxporteerd.
De engine draait in een achtergrondproces in dit tabblad, zodat de pagina blijft reageren; met Annuleren stop je het. Alleen het enginebestand wordt gedownload; het CSV-bestand en de database verlaten je apparaat nooit.
Voorbeeld
Een orderbestand met nummers met voorloopnullen, een lege datum en een notitie van twee regels, omgezet met Getallen en true/false herkennen, tabelnaam orders en order_id als Primaire sleutel, en daarna geopend met de sqlite3-shell. total werd REAL en paid werd INTEGER 1/0, terwijl order_id en shipped_on TEXT bleven. Met de standaard Alle waarden als tekst bewaren zijn alle zes kolommen TEXT en houdt total de waarde 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'Vragen en antwoorden
Wat is het verschil met CSV naar SQL?
Deze pagina geeft je een kant-en-klaar SQLite-databasebestand dat je direct opent. CSV naar SQL schrijft een tekstscript met CREATE TABLE- en INSERT-opdrachten dat je zelf uitvoert, voor SQLite of voor PostgreSQL, MySQL of SQL Server, en kan bestanden groter dan 25 MB in delen verwerken.
Kan ik de CSV aan een bestaande database toevoegen?
Niet rechtstreeks; elke omzetting maakt een nieuwe database met één tabel. Koppel hem vanuit je bestaande database met ATTACH 'orders.sqlite' AS src; en kopieer de rijen met INSERT INTO … SELECT * FROM src.orders;.
Waarom worden true en false opgeslagen als 1 en 0?
SQLite heeft geen booleaanse opslagklasse; booleans zijn gehele getallen. Met Getallen en true/false herkennen wordt true 1 en false 0. In de tekstmodus blijven het de strings true en false.