DB in Browser
Upload CSVs as SQLite tables, run SQL joins and filters, and copy the result as CSV, TSV, or JSON. Everything runs in your browser - nothing is uploaded, and reloading the page starts a fresh session.
Add a table from CSV
Drop a CSV file or click to browse
or paste data below
SQL query
Results
How DB in Browser works
A real SQLite database, running locally
This tool runs SQLite, the same database engine used in phones and browsers, compiled to WebAssembly with sql.js. It runs inside the page. Each CSV you add becomes a table, and you query it with standard SQLite SQL: JOIN, GROUP BY, subqueries, CASE, common table expressions, and window functions such as ROW_NUMBER().
The database lives in memory for the current tab. Nothing is sent anywhere, and everything is gone when you close or reload the page. Export query results you want to keep. For background on when this approach beats a spreadsheet, see running SQL on CSV in the browser.
How a CSV becomes a table
The table name defaults to the file name, cleaned to lowercase letters, digits, and underscores, so Orders 2026.csv becomes orders_2026; you can type another name. Column names are cleaned the same way, and duplicates get _2, _3 suffixes.
Each column gets a type from its values. Whole numbers make it INTEGER and decimals or scientific notation make it REAL, so SUM, AVG, and numeric sorting work as expected. Anything else is TEXT. Empty cells are stored as NULL, which matters for COUNT(column) and WHERE column IS NULL. Comma- and tab-separated files are both accepted.
Writing and exporting queries
Once two tables are loaded, the tool suggests a starter join based on matching column names. Click a table to preview its first rows. Load sample tables adds a small orders and customers pair to practice on. Your recent queries are kept in a history list for the session, with their row counts and timings.
Result grids show the first 500 rows, but copy and download always include every row, as CSV, TSV, or JSON. You can drop and replace tables at any time, for example to reload a corrected file.
Example
amount is typed REAL, so SUM adds the values numerically instead of joining text.
-- orders.csv
order_id,customer_id,amount
1001,7,120.00
1002,9,35.50
1003,7,64.25
-- customers.csv
customer_id,name,region
7,Ana,West
9,Raj,SouthSELECT c.name, COUNT(*) AS orders, SUM(o.amount) AS total
FROM orders AS o
JOIN customers AS c ON o.customer_id = c.customer_id
GROUP BY c.name
ORDER BY total DESC;
name | orders | total
Ana | 2 | 184.25
Raj | 1 | 35.5How to use DB in Browser
- 1
Drop a CSV or TSV file, or paste data, and confirm the table name.
- 2
Add more files to create more tables.
- 3
Write a SQL query, or start from a suggested preview, count, or join.
- 4
Run it, then copy or download the full result as CSV, TSV, or JSON.
When to use it
Joining exports from two systems
Match orders from a shop export with customers from a CRM export by a shared ID.
Quick aggregates
Answer counts, sums, and top-N questions on a file too awkward for spreadsheet pivot tables.
DB in Browser questions
Which SQL dialect does it use?
SQLite. Most standard SQL works; functions differ from MySQL or PostgreSQL in places (for example, string concatenation uses ||).
Can I save the database?
No. Tables exist only in the open tab. Export results, or keep the source CSV files and reload them.
Why does my numeric column sort like text?
If any non-empty value is not a number, such as '1,200' or 'n/a', the column is typed TEXT. Clean the values first with Find & Replace or Column Tools, or use CAST(column AS REAL) in the query.
Can I run UPDATE or DELETE?
Yes. Any SQLite statement runs against the in-memory tables, so you can clean data with SQL and then export it with a SELECT.
Questions about privacy, file size, or accounts are answered on the FAQ page.
More clean & transform
Other tools in the same category
Data Process
Search, filter, sort, and rearrange CSV, TSV, or JSON data, then export exactly the view you built
CSV to SQL
Generate CREATE TABLE and INSERT statements from CSV or TSV for MySQL, PostgreSQL, or SQLite
Remove Duplicates
Remove duplicate rows from CSV, TSV, or JSON, matching on all columns or only the key columns you choose
Column Tools
Rename, drop, reorder, fill, split, combine, and cast columns in CSV, TSV, or JSON