Free SQLite Viewer Online: Open a .db File in Your Browser

Someone hands you a .db file and all you need is a quick look inside. Installing DB Browser or looking up sqlite3 commands for a thirty-second look feels like overkill. The viewer above opens the file right here in the page, and your database never leaves your machine. In this article I'll walk you through opening a file and running SQL on it, and where the viewer's limits are.

TLDR

  • Drop a .db, .sqlite or .sqlite3 file onto the tool, or click Choose a file.
  • The left column lists every table with its row count, and views below them. Click one to browse it, 100 rows at a time.
  • Schema shows each column and index, plus the CREATE statement. SQL runs any statement, including UPDATE and CREATE TABLE.
  • Export any result as CSV or JSON, or copy it as a Markdown table. Download database saves your edits as a new file.
  • Nothing is uploaded. The viewer makes no network request with your data, and it keeps working if you go offline after it loads.

What is this SQLite viewer?

It's a read-and-query tool for SQLite database files that runs entirely in your browser. The engine is sql.js, an open-source project that compiles SQLite's C source code to WebAssembly. When you open a file, the browser reads it into memory and hands it to that engine. The page then asks SQLite the same questions a desktop tool would: SELECT name FROM sqlite_schema for the table list, PRAGMA table_info for the columns, and plain SELECT statements for the rows.

Because the engine is real SQLite (version 3.49.1 in the current build), the SQL you'd run in the sqlite3 shell works here too, from joins to window functions. Dot-commands such as .tables belong to the shell, so use their SQL equivalents here. The difference is that there's nothing to install and nothing to upload.

How to open a SQLite file online

Opening a file takes one step, and reading it takes a click or two more.

Step 1: Pick the file

Drag the file anywhere onto the tool, or click Choose a file and select it. Any extension works as long as the content is a SQLite 3 database; the tool checks the 16-byte header rather than the file name. If you don't have a file to hand, Try the sample database builds a small blog database (authors, posts, comments, tags and a view) so you can see every feature.

Step 2: Browse a table

The left column lists tables first, each with a row count, and views below them. Click a name to see its rows. Numbers are right-aligned, NULL is shown in italics, and binary columns show their size as BLOB. Click a column heading to sort by it; click again to reverse, and a third time to clear the sort. Rows per page goes up to 500.

Step 3: Read the schema

The Schema tab shows the selected table's columns with their declared type, primary key, NOT NULL and default value. Below that are the indexes and foreign keys. The exact CREATE statement SQLite stored comes last. Whole database schema at the bottom collects every statement in the file, which is the quickest way to copy a schema into a migration or a ticket.

How to run SQL on the file

The SQL tab is a plain editor with a Run button. Type a statement and press Run, or Ctrl+Enter (⌘+Enter on a Mac). If you select part of the text, only the selection runs.

For example, on the sample database:

SELECT a.name, COUNT(p.id) AS posts, SUM(p.views) AS views
      FROM authors a
      LEFT JOIN posts p ON p.author_id = a.id
      GROUP BY a.id
      ORDER BY views DESC;
      
name               posts  views
      -----------------  -----  -----
      Ada Lovelace       2      2519
      Grace Hopper       2      2210
      Linus Benedict     2      1745
      Margaret Hamilton  2      455
      

Statements separated by semicolons run in order, and each one gets its own result block. A statement that returns no rows, such as UPDATE or CREATE INDEX, reports how many rows it changed. Writes change the in-memory copy only. Your original file on disk is untouched until you click Download database and save the result, which is written with -edited added to the name.

Results stop at 50,000 rows per statement to keep the tab responsive, and the grid draws the first 1,000. The exports always include every row that was collected.

How to export rows

Under every result grid are three buttons:

Button What you get
Export CSV RFC 4180 CSV with a header row, quoted where needed
Export JSON an array of objects, one per row, keyed by column name
Copy as Markdown a GitHub-style table on your clipboard

On the Browse tab the CSV and JSON buttons export the whole table rather than the page you're looking at. Blob columns are written as their byte count in every export. A text cell that begins with a formula character such as = or @ gets a leading apostrophe in CSV exports, so a spreadsheet opens it as text rather than running it as a formula.

Can I open a CSV file?

Yes. Open a CSV instead (or Add a CSV as a table once a database is open) parses the file and guesses INTEGER, REAL or TEXT for each column from the first 2,000 rows. It then creates a table named after the file and inserts the rows inside one transaction. You can then query it like any other table or join it against the tables already in the file. If you'd rather do the same thing in the shell, see how to import a CSV into SQLite.

Is my database uploaded anywhere?

No. The viewer downloads its engine once, then every operation happens in your browser's memory. There is no server component to receive your data. You can confirm this yourself: open your browser's developer tools, watch the Network panel while you open a file, and you'll see no request carrying it.

This page is also served differently from the rest of sqldocs.org. The articles come from WordPress and load analytics and advertising scripts; this page is a static file served at the edge, and it loads no third-party script at all. It sends a Content Security Policy that only allows code and connections from sqldocs.org and forbids inline scripts, so a script from another site couldn't run even if one got in.

The engine is pinned to one version and served from this same address. Before SQLite starts, the WebAssembly binary is hashed with SHA-256 and compared against the expected value. If the check fails, the viewer refuses to load rather than run altered code.

SQLite runs in a background worker, so a slow query doesn't freeze the page. A Stop button ends it, and the viewer reopens your file from the copy it kept.

Limits

  • File size. The whole file is read into memory, so a 300 MB database needs several hundred megabytes of RAM in the tab. Files above 300 MB show a warning first; files above 1 GB are refused. A 143 MB file with 1.2 million rows opened in under a second on the test machine.
  • Damaged files. On open, files under 64 MB get a PRAGMA quick_check. If SQLite reports the file as malformed, the tool says so and links to the disk image is malformed guide. Larger files skip the check for speed, so a damaged large file may fail on first query instead.
  • Stopping a query. Stop works by restarting the engine and reopening the file. Edits from queries that finished are kept when the database is under 64 MB, but changes made by the query you stop are not. Above 64 MB, edits since your last download are lost when you press Stop.
  • Encrypted databases (SQLCipher and similar) can't be opened; the header check rejects them.
  • Write-ahead log files. If your database has a -wal file beside it, changes in that log aren't included, because the browser can only read the one file you pick. Run PRAGMA wal_checkpoint on the original first.
  • Mobile. Browsing and the schema view work on a phone. Writing SQL on a phone keyboard works, but long queries are more comfortable on a laptop.

FAQ

Short answers about using the viewer, each linking to a full guide where there is one.

How do I view a .db file without installing anything?

Open this page, drop the file onto the tool, and click a table name. The viewer runs SQLite in your browser as WebAssembly, so there's no download beyond the page itself.

How do I see all the tables in a SQLite database?

The left column of the viewer lists every table and view as soon as a file opens. In the shell, the equivalent is .tables, or SELECT name FROM sqlite_schema WHERE type = 'table'. The guide on how to show tables in SQLite covers every method.

Can I edit data here?

Yes, through SQL. Run your changes in the SQL tab, then click Download database to save a copy with them. The file you opened is never modified in place.

What is the difference between .db, .sqlite and .sqlite3?

Nothing, as far as SQLite is concerned. The extension is a convention chosen by whoever created the file. The viewer identifies a database by its header, which begins with the text SQLite format 3.

Does it work offline?

After the page and the engine have loaded once, yes, as long as you keep the tab open. Reloading the page needs a connection again, because the engine is fetched from this address.

Which SQLite version is this?

sql.js 1.14.2, which bundles SQLite 3.49.1. Run SELECT sqlite_version(); in the SQL tab to confirm.

Further reading

Tested with sql.js 1.14.2 (SQLite 3.49.1) in Chromium 153 on 7 October 2026.