Your investigation starts here
No database software or account is needed for browser mode.
Drop a SQLite database here
Or choose a file. Common extensions: .sqlite, .sqlite3, .db, .db3.
Any extension is accepted when the SQLite 3 header is valid. Limit: 100 MiB.
Start without SQL
Click a table, browse records, sort columns, and apply a filter.
Learn as you investigate
Follow six guided labs using fictional, built-in practice data.
Keep findings traceable
Record notes, retain query history, and export data and reports.
Source & provenance
Database characteristics
Counts can be expensive. They are not calculated automatically.
Database inventory
Click a user table to browse it. Row counts appear after an explicit count.
Browse records
Select a table or view in the navigator.
Exports are limited to 32 MiB of returned data. A capped result is never silently exported as complete.
Schema inspector
Explore definitions, column metadata, indexes, foreign keys, and triggers.
SQL workspace
One read-only statement per run. Press Ctrl+Enter or Command+Enter to execute.
Optional bound parameters (JSON)
Example: SELECT * FROM contacts WHERE role = ?; with ["student"]. Large integer parameters should be strings with an explicit CAST(? AS INTEGER).
The grid shows 100 rows at a time; query export includes every loaded row, not just its visible page. If the result limit is reached, that is recorded in the export.
Query history
Query recipes
Recipes use the practice database. Adapt table and column names for your own files.
Integrity & relationships
Structural checks are not malware scans and do not establish that data is complete, authentic, or truthful.
Profile a table
Calculate exact counts, NULLs, distinct values, storage types, and numeric ranges. Limited to 64 columns per run.
Column profile
Full-table aggregates; no sampling. Numeric statistics ignore NULL, TEXT, and BLOB values.
Search across user tables
Literal substring search across TEXT and numeric cells; BLOBs and views are excluded. SQLite's built-in lower() is ASCII-oriented. Limits: 100 tables, 64 visible columns per table, 10 matching rows per table, 200 matching cells total.
Timestamp workbench
A number is not a date until its epoch and units are known. Choose the encoding deliberately; results are shown in UTC. This tool does not infer the originating application.
SQLite conversion examples
-- Unix milliseconds: force real-number division to preserve fractions.
SELECT datetime(sent_at_ms / 1000.0, 'unixepoch') FROM messages;
-- Chrome/WebKit microseconds since 1601:
SELECT datetime(visit_time_us / 1000000.0 - 11644473600,
'unixepoch') FROM browser_history;
-- Apple seconds since 2001:
SELECT datetime(CAST(value AS REAL) + 978307200, 'unixepoch')
FROM device_info WHERE key = 'installed_apple_seconds';Guided student labs
Six investigations using a fictional campus messaging app. Completion checkboxes are self-reported and session-only.
Check your understanding
How the Studio works
Official documentation
Troubleshooting & limits
Investigation notes & report
Keep observations separate from interpretations. Reports are generated locally and include scope limitations.
The HTML report can be printed or saved as PDF through your browser. Query history includes the most recent 100 statements; check/profile/search summaries and export metadata are included.