Naar de inhoud

CSV omzetten naar SQLite

Zet je CSV-bestand neer en krijg een SQLite-script met CREATE TABLE- en INSERT-statements. Elke kolom krijgt een type, en elke correctie wordt vermeld met rij en kolom.

Je bestand
csvventas_2024.csvVoorbeeldbestand, 357 byte
Je database

5 rijen geconverteerd, 8 correcties, geen afgewezen

Tonen
De eerste rijen van ventas_2024.csv, met elke correctie gemarkeerd
Rij
500412Peña MuñozMérida15/02/20241.234,50sí
600413José Ángel RuizLeón03/02/202499,90no
700414Zoë OrtízQuerétaro29/02/2024N/Así
800415Ñuño CastañedaOaxaca28/02/20247,25no
900416Iñaki OlaizolaMazatlán11/03/2024980,75sí
-- Written by IntoSQL for SQLite.

BEGIN;

CREATE TABLE ventas_2024 (
    folio TEXT NOT NULL,
    cliente TEXT NOT NULL,
    ciudad TEXT NOT NULL,
    fecha DATE NOT NULL,
    importe NUMERIC(6,2),
    pagado BOOLEAN NOT NULL
);

INSERT INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES
('00412', 'Peña Muñoz', 'Mérida', '2024-02-15', 1234.50, 1),
('00413', 'José Ángel Ruiz', 'León', '2024-02-03', 99.90, 0),
('00414', 'Zoë Ortíz', 'Querétaro', '2024-02-29', NULL, 1),
('00415', 'Ñuño Castañeda', 'Oaxaca', '2024-02-28', 7.25, 0),
('00416', 'Iñaki Olaizola', 'Mazatlán', '2024-03-11', 980.75, 1);

COMMIT;

Correcties

  1. Het bestand was gecodeerd in windows‑1252; het is omgezet naar UTF-8.
  2. De koprij staat op rij 4; de rijen erboven zijn weggelaten.
  3. Rij 10 ("TOTAL") is een totaal en is daarom weggelaten.
  4. Voorloopnullen behouden in "Folio": 00412 blijft 00412, opgeslagen als tekst.
  5. 15/02/2024 bewijst dat de datums in "Fecha" met de dag beginnen, dus 03/02/2024 wordt gelezen als 2024‑02‑03.
  6. Getallen in "Importe" gebruiken een decimale komma: 1.234,50 wordt gelezen als 1234.50.
  7. N/A in "Importe" gelezen als leeg (1 van 5 waarden).
  8. "Pagado" bevat ja- en nee-woorden (sí, no), opgeslagen als boolean.

Je bestand wordt op deze computer omgezet en nooit geüpload.

Andere voorbeelden:

Van CSV naar SQLite, kolom voor kolom

Het voorbeeld hierboven, ventas_2024.csv, zoals IntoSQL het voor SQLite schrijft: wat elke kolom in het bestand bevat, welk type ze krijgt en hoe haar eerste waarde in het script terechtkomt.

In het bestandEerste waardeKolomType in SQLiteIn het script
Folio00412folioTEXT'00412'
ClientePeña MuñozclienteTEXT'Peña Muñoz'
CiudadMéridaciudadTEXT'Mérida'
Fecha15/02/2024fechaDATE'2024-02-15'
Importe1.234,50importeNUMERIC(6,2)1234.50
PagadosípagadoBOOLEAN1

Het script in SQLite laden

De download is een standaard .sql-bestand. Voer het uit met de eigen tools van SQLite.

Vanuit een terminal

sqlite3 ventas_2024.db < ventas_2024.sqlite.sql

Het databasebestand wordt aangemaakt als het nog niet bestaat. De converter downloadt ook een kant-en-klare .sqlite-database, zonder enige opdracht.

Vanuit een databasetool

Kies in DB Browser for SQLite Execute SQL, open het script en voer het uit.

Zonder script

De opdrachtregel laadt het bestand rechtstreeks in een SQLite-database, zonder een script te schrijven. Dat is gratis.

intosql load ventas_2024.csv --into ventas_2024.db

Wat je moet weten over CSV-bestanden en SQLite

Wat IntoSQL leest in CSV-bestanden

  • De codering wordt herkend, ook Windows-1252 en UTF-16, zodat accenten en ñ intact aankomen.
  • Het scheidingsteken wordt herkend: komma, puntkomma, tab of verticale streep. Met een puntkomma worden decimale komma's zoals 1.234,50 als getallen gelezen.
  • Waarden tussen aanhalingstekens kunnen scheidingstekens en regeleinden bevatten.

Wat je moet weten over SQLite

  • Elke kolom krijgt het type dat de waarden nodig hebben, zoals INTEGER, NUMERIC, TEXT, DATE of BOOLEAN; ja en nee worden opgeslagen als 1 en 0.
  • Decimale getallen met meer dan 15 cijfers blijven TEXT, zodat er geen cijfer wegvalt door afronding.
  • Download het SQLite-script, of een kant-en-klare .sqlite-database die in je browser wordt gemaakt.

Hoe elk soort waarde in SQLite wordt opgeslagen

WaardeSQLite
Ja en neeBOOLEAN
Gehele getallenINTEGER
Grote gehele getallenINTEGER
Decimale getallenNUMERIC(p,s)TEXT
DrijvendekommagetallenREAL
DatumsDATE
TijdstippenTIME
Datums met tijdDATETIME
Datums met tijd en tijdverschilDATETIME
TekstTEXT

Vragen over CSV naar SQLite

Staat je vraag er niet bij? Schrijf ons via de contactpagina en een mens antwoordt. Contactpagina

Hoe zet ik CSV om naar SQLite?

Zet je bestand neer op de converter bovenaan deze pagina. Die vindt de kopregel, leest elke waarde en schrijft het SQLite-script, met elke correctie vermeld. Download het script en voer het uit met sqlite3.

Wat als mijn CSV puntkomma's of tabs gebruikt?

Het scheidingsteken wordt herkend: komma, puntkomma, tab of verticale streep. Je kunt het ook instellen onder Meer opties. Met een puntkomma worden decimale komma's zoals 1.234,50 als getallen gelezen.

Welke SQLite-types gebruikt het?

Ja/nee-waarden worden BOOLEAN, gehele getallen INTEGER, decimalen NUMERIC(p,s), datums DATE, datums met tijd DATETIME en tekst TEXT. De groottes volgen uit de langste waarde in elke kolom.

Blijven voorloopnullen behouden in SQLite?

Ja. Een code zoals 00412 blijft tekst, dus SQLite slaat hem op als TEXT en het script schrijft hem als '00412'.

Kan het de data zonder script in SQLite laden?

Ja, gratis: intosql load maakt het SQLite-databasebestand aan en laadt de rijen erin. De converter op deze pagina downloadt ook een kant-en-klare .sqlite-database.

Hoe groot mag het CSV-bestand zijn?

De browser leest een CSV terwijl die binnenstroomt, dus bestanden van meerdere gigabytes werken. Op een laptop met Apple M4 converteert de opdrachtregel een CSV van 174 MB met een miljoen rijen in minder dan een seconde.