Wat het doet
Een spreadsheet in een database laden betekent meestal dat je een tabeldefinitie en een lange lijst INSERT-statements met de hand schrijft en elke apostrof escapet. Deze tool doet dat voor je: plak CSV en krijg een direct uitvoerbaar SQL-script met een CREATE TABLE-statement en gebundelde INSERT-statements met meerdere rijen.
De tool volgt RFC 4180 en verwerkt velden tussen aanhalingstekens, komma’s en regeleinden in cellen en verdubbelde aanhalingstekens. Strings worden correct geëscaped voor de gekozen database, inclusief backslashes in MySQL en N'…'-Unicodestrings in SQL Server.
Zo gebruik je het
- Plak CSV, upload een
.csv- of.tsv-bestand, of klik op Voorbeeld. - Vul de Tabelnaam in. Gebruik een punt voor een schema, zoals
public.ordersofdbo.orders. - Kies het Dialect: MySQL / MariaDB, PostgreSQL, SQLite of SQL Server.
- Kies het aantal Rijen per INSERT en zet CREATE TABLE uit als de tabel al bestaat.
- Kopieer de SQL of download die als
.sql-bestand en voer hem uit met je databaseclient.
Het scheidingsteken wordt automatisch herkend; je kunt ook expliciet komma, puntkomma, tab of pipe kiezen. Bevat de eerste rij gegevens in plaats van kolomnamen, zet dan Eerste rij is kopregel uit; de kolommen heten dan column_1, column_2 enzovoort.
Voorbeeld
Deze CSV:
id,name,price,in_stock
1,Ada's Tea,4.50,true
2,Coffee,,false
wordt dit script voor PostgreSQL:
CREATE TABLE "products" (
"id" INTEGER,
"name" TEXT,
"price" NUMERIC(3, 2),
"in_stock" BOOLEAN
);
INSERT INTO "products" ("id", "name", "price", "in_stock") VALUES
(1, 'Ada''s Tea', 4.50, TRUE),
(2, 'Coffee', NULL, FALSE);
De apostrof in Ada's wordt verdubbeld, de lege prijs wordt NULL, en getallen en booleans worden zonder aanhalingstekens geschreven.
Typen en dialecten
- MySQL / MariaDB: identifiers tussen backticks,
INT,DECIMAL,BOOLEAN,DATE,DATETIME,VARCHAR(255)ofTEXT; backslashes in strings worden geëscaped. - PostgreSQL: identifiers tussen dubbele aanhalingstekens,
INTEGER,NUMERIC,BOOLEAN,DATE,TIMESTAMPenTEXT. - SQLite: identifiers tussen dubbele aanhalingstekens en de opslagklassen van SQLite
INTEGER,REALenTEXT; booleans worden als 1 en 0 geschreven. - SQL Server: identifiers tussen vierkante haken,
INT,DECIMAL,BIT,DATE,DATETIME2enNVARCHAR, metN'…'-literals en maximaal 1000 rijen per INSERT. - Lege cellen worden
NULL. Zet Lege cellen als NULL uit om lege strings in tekstkolommen te behouden. - Controleer de afgeleide typen voordat je het script op productiegegevens uitvoert: een kolom met alleen kleine getallen in de steekproef heeft later misschien een groter type nodig.
Veelgestelde vragen
› Welke databases worden ondersteund?
MySQL (en MariaDB), PostgreSQL, SQLite en Microsoft SQL Server. Het dialect bepaalt hoe tabel- en kolomnamen worden gequote, hoe strings worden geëscaped, welke kolomtypen worden gebruikt en hoe booleans worden geschreven.
› Hoe worden kolomtypen gekozen?
Elke kolom wordt doorzocht: gehele getallen worden INT of BIGINT, decimale getallen DECIMAL met voldoende precisie, true/false wordt BOOLEAN (BIT in SQL Server), ISO-datums worden DATE of DATETIME en al het andere wordt tekst. Getallen met voorloopnullen, zoals postcodes, blijven tekst. Zet Typen herkennen uit om alle kolommen als tekst te behandelen.
› Waarom is SQL Server beperkt tot 1000 rijen per INSERT?
SQL Server weigert een VALUES-lijst met meer dan 1000 rijen, dus grotere batches worden voor dit dialect op 1000 begrensd. Andere databases accepteren grotere batches, maar 100 tot 1000 rijen per statement is een goede balans tussen snelheid en lengte.
› Wordt mijn CSV geüpload?
Nee. Parsen en het genereren van SQL gebeuren volledig in je browser, dus de gegevens verlaten je apparaat nooit.