SQLite Explorer
Open a local SQLite database in your browser: browse tables, views and indexes, run SQL and export results without uploading the file.
Your inputs and files stay in your browser
Database
Drop a SQLite file here
.sqlite, .sqlite3, .db, .db3 or .s3db, up to 512 MiB.
Off by default: the copy is read-only. When on, INSERT, UPDATE and schema changes apply to a copy in browser memory; the original file is never modified, and you can download the changed copy.
- File
- Mode
- Pages
- Encoding
- user_version
- Engine
The file was saved in WAL mode. Only the main file is read: changes still in a separate -wal file are not included.
Schema
The database has no tables, views, indexes or triggers.
The file stays on this device. SQLite runs as WebAssembly in a dedicated Web Worker; nothing is uploaded and no SQL text or data is saved.
SQL
Press Ctrl or Cmd + Enter to run. Several statements separated by semicolons run in order; the last one that returns rows is shown.
Open a database, pick a table or run SQL to see rows here.
Export result
Exports every row of the current table or query. NULL is empty in CSV and null in JSON; BLOB values are written as hex.
Changed copy
Download the in-memory copy with your changes as a new SQLite file. Changes are lost when you close the page, cancel an operation or open another file.
On this page
SQLite Explorer opens a local SQLite database right in your browser. See the tables, views, indexes and triggers, inspect columns and CREATE statements, page through rows and run any SQL — the .db file is never uploaded.
Detailed Functionality
The official SQLite build compiled to WebAssembly runs in a dedicated Web Worker and loads only on this page. The file you choose is copied into worker memory; by default the copy is read-only, so statements that change data are refused and the original file on disk is never touched.
Turn on “Allow changes to the in-memory copy” to run INSERT, UPDATE, DELETE or schema changes against the copy, then download it as a new database file. Nothing is written back to the original.
Scripts with several statements run in order. The last statement that returns rows becomes the result: a SELECT, WITH or VALUES query is stored in a temporary table (up to 1,000,000 rows) and the virtualized table reads it page by page; PRAGMA, EXPLAIN and RETURNING output is captured up to 10,000 rows. Browsing a table reads it directly with LIMIT and OFFSET. Results export to CSV, JSON, JSONL or SQL INSERT statements in chunks.
Practical Examples
Look at a table: click a table in the schema list to see its columns, indexes, foreign keys and rows.
Count rows: the “Row counts” example builds a UNION ALL query over every table.
Check a file: run PRAGMA integrity_check; to verify a database copied from a phone or an app.
Fix data in a copy: turn on changes, run UPDATE settings SET value = 'on' WHERE key = 'debug'; and download the changed database.
How to Use This Tool
Open a database
Drop a .sqlite, .db or .sqlite3 file or choose it. The schema list and file details appear.
Browse objects
Click a table or view to see its rows and structure; click an index or trigger to see its definition.
Run SQL
Pick an example or write your own and press Ctrl or Cmd + Enter.
Export or save
Export the current result as CSV, JSON, JSONL or INSERT statements. In writable mode, download the changed database.
Tips and Best Practices
- The original file is never modified, even in writable mode — changes live only in the in-memory copy until you download it.
- If the app that owns the database uses WAL mode, close it first or run a checkpoint so the -wal contents reach the main file; only the main file is read.
- Encrypted databases (SQLCipher and similar) cannot be opened.
- Quote identifiers with double quotes:
SELECT * FROM "order items". - Cancel stops the worker immediately and reopens the file, discarding unsaved changes.
- Large 64-bit integers stay exact: they are shown and exported as text when JavaScript numbers would round them.