Direct naar de tool
ViewCSV
Niets wordt geüpload

CSV omzetten naar SQLite

orders.csv· VOORBEELDGEGEVENS15 rijen · 8 kolommen
Waardetypen
Als tekst blijft elke waarde precies gelijk. Met herkenning worden INTEGER en REAL gebruikt als elke waarde past.
orders.csv
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041Julia JansenDen HaagMonitor 27"719.632026-01-16refunded
2001042Finn JansenGroningenCoffee beans 1kg461.322026-02-07paid
3001043Noah de BoerUtrechtMonitor 27"75.832026-03-18paid
4001044Emma MeijerAmsterdamChair, ergonomic374.882026-04-22refunded
5001045Julia JanssenUtrechtNotebook A55·2026-05-02shipped
6001046Julia BakkerGentChair, ergonomic8113.312026-06-17shipped
7001047 Daan van Dijk Den HaagUSB-C cable148.132026-07-06pending
8001048Julia van den BergGroningenNotebook A5173.682026-08-07pending
9001049Julia van DijkEindhovenChair, ergonomic3102.722026-09-01shipped
10001050Finn de JongAntwerpenMonitor 27"3137.322026-01-04pending
11001051Tess JanssenDen HaagNotebook A59125.222026-02-12refunded
12001052Julia de JongGroningenDesk lamp562.892026-03-04shipped
13001053Zoë MeijerRotterdamNotebook A51127.862026-04-09pending
14001054Sophie VisserAntwerpenChair, ergonomic299.732026-05-13pending
15001043Noah de BoerUtrechtMonitor 27"75.832026-03-18paid

15 rijen · 1 bestand Gebruikt de SQLite-engine (WebAssembly), eenmalig gedownload van assets.viewcsv.app. Je gegevens blijven in dit tabblad.

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

  1. 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.
  2. Controleer de Tabelnaam. Die begint als de bestandsnaam, met spaties en leestekens omgezet in underscores, dus orders 2026.csv wordt orders_2026.
  3. Kies de Waardetypen, eventueel een Primaire sleutel, en of je Lege cellen als NULL schrijven wilt.
  4. Kies ‘SQLite downloaden’ en open het bestand, bijvoorbeeld met sqlite3 orders.sqlite en SELECT * 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 kolomnamenPrecies 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 bewarenDe standaard. Elke kolom wordt gedeclareerd als TEXT en bewaart elke waarde precies zoals die er staat.
Getallen en true/false herkennenEen 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 sleutelOptioneel. 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 schrijvenStandaard 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.

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

Standaarden en bronnen