From spreadsheet to database in one step
Paste a CSV and get a ready-to-run SQL script: an optional CREATE TABLE with a column type for each field, followed by multi-row INSERT statements. Column types are detected from the data - whole numbers become INT (or BIGINT when they need it), decimals become DECIMAL or NUMERIC, true/false becomes BOOLEAN or BIT, ISO dates become DATE, and everything else becomes text sized to fit.
Written for your database
Each database quotes names and values differently, and the script follows the one you pick. MySQL quotes identifiers with backticks and needs backslashes escaped; PostgreSQL and SQLite use double quotes; SQL Server uses square brackets and N’…’ strings so non-English text survives. Single quotes inside values are doubled for all of them, so a name like O’Brien cannot break the statement.
Batches and limits
Rows are grouped into INSERT statements of 500 by default. SQL Server refuses more than 1,000 rows in a single VALUES list, so the converter caps it there. Smaller batches mean smaller transactions if you are loading into a busy database.
When to use bulk load instead
For hundreds of thousands of rows, the database’s own loader is faster: COPY in PostgreSQL, LOAD DATA INFILE in MySQL, BULK INSERT in SQL Server, .import in SQLite. For anything up to tens of thousands, a script like this is simpler and works through any client. Need JSON instead? Use the CSV to JSON converter.

