Convert CSV to SQLite Online
Import a spreadsheet export, join it with another, and let SQL do the heavy lifting. Your CSV becomes a table. Your browser becomes the database.
-- After importing customers.csv and orders.csv
SELECT
customers.name,
SUM(CAST(orders.total AS REAL)) AS revenue
FROM customers
JOIN orders
ON customers.id = orders.customer_id
GROUP BY customers.name
ORDER BY revenue DESC;Preview before importing
Choose a CSV or TSV file. Review its delimiter, header row, column names, and sample values. UTF-8 files work best.
Keep types intentional
Columns start as TEXT to preserve IDs and leading zeros. Choose INTEGER or REAL for numeric columns; invalid values stop and roll back the import.
Query, join, and download
Import additional CSVs into the same database. Run a JOIN across tables, then export the database as a portable .sqlite file.
Before you dive in.
Everything runs locally. Here is what to expect.
Choosing types for CSV columnsCan I import more than one CSV?
Yes. Select multiple CSV files and review them one at a time. Each file becomes its own table in the current workspace.
Will my original CSV file change?
No. SQLite Lab reads your file and builds a separate table. Exports create new downloads; your source file is unchanged.
What happens to empty values and numbers?
TEXT columns preserve empty strings and values exactly. In INTEGER or REAL columns, empty or whitespace-only cells become NULL. INTEGER supports SQLite’s signed 64-bit range; REAL uses floating-point values.
What happens if the import fails?
The newly created table and its rows are rolled back. Existing tables remain intact. Check the delimiter, header, column count, and chosen data types before retrying.
Try a concrete task
Open a sample dataset and inspect its tables and relationships. Use the SQL reference for examples with expected output, or follow a guided practice path. To investigate query access patterns, select one SELECT and use Explain in the workspace.