SQL INSERT Generator
Paste table data copied from Excel, Google Sheets or a CSV file and instantly get INSERT statements — pick the table name, use the header row as columns, choose one multi-row INSERT or one per row, and control NULL and number quoting. Runs entirely in your browser.
About this tool
The SQL INSERT Generator turns tabular data — copied straight from Excel, Google Sheets or a CSV file — into ready-to-run INSERT statements. Instead of hand-typing values row by row, you paste the grid, name the target table and get valid SQL you can drop into a migration or a seed script.
It is aimed at backend developers seeding a database or loading reference data. You control how columns are named, whether to emit one multi-row INSERT or one statement per row, and how NULLs and numbers are quoted. Everything runs in your browser, so the data you paste is never uploaded.
How to use
- Copy your rows from Excel, Google Sheets or a CSV and paste them in.
- Enter the target table name for the INSERT statements.
- Enable using the first row as column names, or supply your own.
- Choose one multi-row INSERT or a separate statement per row.
- Set how NULL values and numbers should be quoted.
- Copy the generated SQL into your migration, seed script or console.
Features
- Accepts tab-separated data from spreadsheets and comma-separated CSV.
- Uses the header row as column names, or lets you define them.
- Choice of a single multi-row INSERT or one INSERT per row.
- Smart quoting: strings quoted, numbers left raw, empty cells as NULL.
- Custom table name so the output matches your schema.
- Great for seeding databases and loading reference or fixture data.
- Fully client-side — your pasted data never leaves the browser.
Frequently asked questions
Is the data I paste uploaded anywhere?
No. The INSERT statements are generated in your browser with JavaScript, so the rows you paste — including any real or sensitive data — stay on your device.
How do I get the column names right?
Turn on the option to use the first row as column names, so the header from your spreadsheet becomes the column list in the INSERT. Otherwise you can type the columns yourself.
When should I use one multi-row INSERT versus one per row?
A single multi-row INSERT is compact and fast to run for bulk loads. Separate statements per row are easier to read, edit or partially re-run, which helps when debugging seed data.
How are numbers and NULLs handled?
Text values are wrapped in quotes, numeric values are emitted without quotes so they insert as numbers, and empty cells become NULL. You can adjust this quoting behaviour to fit your schema.
Which databases do the statements work with?
The output uses standard INSERT INTO syntax that runs on PostgreSQL, MySQL, SQL Server and most relational databases, though you may want to double-check type-specific value formats.