SQLite Viewer — Free Online Tool

Open and browse SQLite databases entirely in your browser using WebAssembly. View tables, run SQL queries, export data. No installation, no upload, 100% client-side.

Use this free online SQLite Viewer directly in your browser. No signup required, no data leaves your device. Part of Utilier — a collection of 133+ developer utilities.

What is SQLite Database Viewer?

SQLite is a lightweight, file-based database used by mobile apps (iOS, Android), browsers (Chrome, Firefox history), desktop applications, and embedded systems. This tool opens .sqlite and .db files entirely in the browser using sql.js (SQLite compiled to WebAssembly), allowing you to browse tables, view data, and run SQL queries without installing database software or uploading files to a server.

  • WebAssembly powered: Uses sql.js, a port of SQLite to WebAssembly. The database is loaded into browser memory and processed entirely client-side. No server, no upload.
  • Table browsing: Lists all tables, views, and indexes in the database. Click a table to see its structure (columns, types) and browse rows with pagination.
  • SQL query execution: Run SELECT, INSERT, UPDATE, DELETE, and DDL queries in a built-in SQL editor. See results in a table or export as JSON/CSV.
  • Schema inspection: View table schemas, column types, primary keys, foreign keys, and indexes. See the CREATE TABLE statements for each table.
  • Export support: Export query results or entire tables as JSON, CSV, or SQL. Download the modified database as a new .sqlite file.

Why use SQLite viewer?

SQLite databases are everywhere, but viewing them usually requires installing DB Browser for SQLite, command-line sqlite3, or other desktop tools. This viewer works instantly in the browser with no installation.

  • No installation required: No need for DB Browser, SQLite Manager, or sqlite3 command-line tools. Open databases in the browser with one click.
  • 100% client-side: The database never leaves your device. Perfect for viewing app databases, exported data, or databases with sensitive information.
  • Cross-platform: Works on Windows, macOS, Linux, and even mobile browsers (with file upload). No platform-specific software needed.
  • Quick data inspection: Quickly check what data an app stores, verify export files, or debug SQLite schema issues without setting up a development environment.
  • Educational: Learn SQL by experimenting with real databases. Run queries, see results, and understand SQLite behavior hands-on.
  • No database size limits: Browser memory permitting, the tool can handle databases up to several hundred megabytes. Most app databases are under 50MB.

When to use SQLite viewer

Use whenever you need to inspect an SQLite database file.

  • Viewing app databases from iOS, Android, or desktop applications to see stored data.
  • Inspecting browser databases (Chrome history, Firefox cookies, extension storage) exported from the profile folder.
  • Debugging SQLite schema issues, foreign key relationships, or index definitions.
  • Running test queries on exported data before importing into production systems.
  • Verifying database exports or backups to ensure data integrity.
  • Learning SQL by experimenting with sample databases (Chinook, Northwind, etc.).
  • Extracting specific data from app databases without reverse-engineering the app.

How to use SQLite viewer

Upload a .sqlite or .db file, browse tables, and run queries.

  1. Upload the database file: Click 'Open Database' and select a .sqlite, .db, or .sqlite3 file. The file is loaded into browser memory using WebAssembly. No upload to any server.
  2. Browse the table list: The left sidebar shows all tables, views, and indexes. Click a table name to see its structure (columns, types, constraints) and preview rows.
  3. View table data: Click a table to load its first 100 rows. Use pagination controls to navigate through larger tables. Columns are labeled with their types (TEXT, INTEGER, REAL, BLOB).
  4. Run SQL queries: Use the SQL editor to run custom queries: SELECT * FROM users WHERE age > 18; Results appear in a table below. Errors show inline with line numbers.
  5. Export results: Export query results as JSON (array of objects), CSV (comma-separated), or SQL INSERT statements. Download the modified database as a new .sqlite file.
  6. Inspect schema: Click 'Schema' to see the CREATE TABLE statements for each table. View column types, primary keys, foreign keys, and indexes.

Key features

  • WebAssembly SQLite engine: Uses sql.js (SQLite 3.x compiled to WebAssembly) for full SQLite compatibility and fast query execution.
  • Table browser: Lists all tables, views, and indexes. Click to see schema and data with pagination.
  • SQL query editor: Run SELECT, INSERT, UPDATE, DELETE, CREATE, and DROP queries. Syntax highlighting and error reporting.
  • Schema inspection: View CREATE TABLE statements, column types, primary keys, foreign keys, and indexes for every table.
  • Export options: Export query results or tables as JSON, CSV, or SQL. Download modified databases as new .sqlite files.
  • 100% client-side: No upload, no server. The database is processed entirely in the browser using WebAssembly.
  • File size support: Handles databases up to browser memory limits (typically 500MB+). Most app databases work fine.

Common use cases

  • App database inspection: View databases from iOS, Android, or desktop apps to see what data is stored locally.
  • Browser data viewing: Open exported Chrome history (History.db), Firefox cookies (cookies.sqlite), or extension storage.
  • Database debugging: Inspect table schemas, foreign keys, and indexes to debug SQLite schema issues.
  • Data extraction: Run queries to extract specific records from app databases without app access.
  • Learning SQL: Practice SQL queries on sample databases (Chinook, Northwind) without installing SQLite.
  • Backup verification: Open database backups or exports to verify data integrity before restoring.

Examples

Actual operations performed with this tool.

Open an app database

users.sqlite (500KB, tables: users, sessions, logs)
Tables listed: users (5 columns, 1200 rows), sessions (4 columns, 350 rows), logs (6 columns, 8400 rows). Click to browse.

The database loads in under a second. All tables, views, and indexes are listed in the sidebar. Click 'users' to see schema and first 100 rows.

Run a query

SELECT name, email FROM users WHERE age > 25 ORDER BY created_at DESC
42 rows returned. Columns: name, email. Export as JSON or CSV.

The query runs instantly on the in-memory database. Results appear in a table with sortable columns.

View table schema

Click 'users' table → Schema tab
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE, age INTEGER, created_at TIMESTAMP)

The CREATE TABLE statement shows column types, primary key, and constraints.

Export query results as JSON

SELECT * FROM sessions WHERE user_id = 42
[{"id": 1, "user_id": 42, "token": "abc", "expires": "2024-12-31"}]

Results export as an array of objects. Each row is an object with column names as keys.

Browse large table with pagination

Click 'logs' table (8400 rows)
Rows 1-100 displayed. Use Next/Previous to navigate. Filter or sort by column.

Large tables are paginated automatically. Only 100 rows are rendered at a time for performance.

Technical reference

The SQLite version and features supported:

SQLite version
3.x (exact version depends on sql.js build, typically 3.40+)
SQL support
Full SQL support: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, transactions, subqueries, joins, views, triggers
Data types
TEXT, INTEGER, REAL, BLOB, NULL. SQLite uses dynamic typing (type affinity)
File formats
.sqlite, .db, .sqlite3, .db3. Any SQLite 3.x database file
Max file size
Limited by browser memory. Typically supports up to 500MB+ depending on available RAM
WebAssembly
Uses sql.js, a WebAssembly port of SQLite. Runs in all modern browsers (Chrome, Firefox, Safari, Edge)
Write support
Supports INSERT, UPDATE, DELETE, and DDL. Changes are in-memory only until you download the modified database
Encryption
Encrypted databases (SQLCipher) are not supported. Only standard SQLite files
Extensions
No extension support (FTS, R-Tree, etc.). Core SQLite only
Comparison to native SQLite
Functionally identical to desktop SQLite 3.x. Slightly slower due to WebAssembly overhead, but negligible for most queries

Common mistakes to avoid

Trying to open encrypted databases (SQLCipher)

Why it happens: SQLCipher is an extension to SQLite that encrypts the entire database file. It requires a password to open and uses a different file format. sql.js (the WebAssembly engine this tool uses) does not support SQLCipher. If you try to open an encrypted database, you get a 'file is not a database' error because the engine cannot read the encrypted format.

How to avoid it: Encrypted databases must be decrypted first using SQLCipher tools (sqlcipher command-line or DB Browser with SQLCipher). Once decrypted and exported as a standard SQLite file, the tool can open it. For security, decrypt databases only on trusted devices.

Expecting changes to persist after closing the browser

Why it happens: This tool loads the database into browser memory. Any changes (INSERT, UPDATE, DELETE) are in-memory only. If you close the browser or refresh the page, changes are lost unless you download the modified database as a new file. There is no 'save' button that modifies the original file — browsers cannot overwrite files for security reasons.

How to avoid it: After making changes, use the 'Download Database' button to save the modified database as a new .sqlite file. Keep the original file as a backup. For permanent changes to an app's database, you must replace the app's database file with the modified one (requires app access or file system permissions).

Loading very large databases (>1GB) and running out of memory

Why it happens: The database is loaded entirely into browser memory (RAM). If the file is larger than available memory, the browser tab crashes with an 'Out of Memory' error. Modern browsers allocate 1-2GB per tab, but the limit varies. A 1.5GB database on a machine with 4GB total RAM will likely fail.

How to avoid it: For databases larger than ~500MB, use desktop tools (DB Browser, DBeaver, sqlite3 CLI) that can handle large files with disk-based caching. Or export only the tables you need as a smaller database and open that. For very large tables, run SELECT queries with LIMIT to avoid loading millions of rows.

Using unsupported SQLite extensions (FTS, R-Tree, JSON1)

Why it happens: sql.js is a core SQLite build without extensions. Full-text search (FTS), spatial indexes (R-Tree), and some JSON functions are extensions that must be compiled in. Queries using CREATE VIRTUAL TABLE or functions like fts5() fail with 'no such module' errors.

How to avoid it: Check if your queries use extensions before opening the database. For FTS-enabled databases, use desktop tools. For JSON operations, the tool supports basic JSON extraction via json_extract() if the sql.js build includes it (check version). Most common SQL (SELECT, JOIN, GROUP BY) works fine.

Not checking browser compatibility before relying on the tool in production

Why it happens: WebAssembly is supported in all modern browsers (Chrome 57+, Firefox 52+, Safari 11+, Edge 16+). Older browsers (IE11, old Android) do not support WebAssembly and cannot run the tool. If you deploy a workflow that depends on this tool and users have old browsers, it fails silently or shows a blank page.

How to avoid it: Test in the target browser before deploying. For public-facing apps, add a feature detection check for WebAssembly support and show an error message with a link to a supported browser. For internal tools, document browser requirements upfront.

Frequently asked questions

Is my database uploaded to a server?

No. The database is processed entirely in your browser using WebAssembly. No data is sent to any server. The file never leaves your device. This is safe for sensitive data, personal databases, or databases with credentials.

Can I open encrypted SQLite databases (SQLCipher)?

No. sql.js (the WebAssembly engine) does not support SQLCipher encryption. If you open an encrypted database, you get a 'file is not a database' error. Decrypt the database first using SQLCipher tools, then open the decrypted file in this tool.

How do I save changes to the database?

Changes (INSERT, UPDATE, DELETE) are made in browser memory. To persist them, click 'Download Database' to save the modified database as a new .sqlite file. The original file is not modified (browsers cannot overwrite files). Replace the original file manually if needed.

What is the maximum database size supported?

Limited by browser memory (typically 1-2GB per tab). Most app databases (under 100MB) work fine. Databases larger than 500MB may cause performance issues or out-of-memory errors. For very large databases, use desktop tools (DB Browser, DBeaver).

Can I run SQL queries that modify data (INSERT, UPDATE, DELETE)?

Yes. The tool supports all SQL commands, including DDL (CREATE, DROP) and DML (INSERT, UPDATE, DELETE). Changes are in-memory only until you download the modified database. To persist changes, download the database as a new file.

How do I export data from a table?

Run a SELECT query on the table (SELECT * FROM table_name), then click 'Export' and choose JSON, CSV, or SQL format. JSON exports as an array of objects, CSV as comma-separated values, SQL as INSERT statements.

Can I use this on mobile devices?

Yes, if the browser supports WebAssembly (modern iOS Safari, Chrome for Android). Upload a .sqlite file via the file picker. Performance depends on the device — older phones may struggle with large databases. For serious work, use a desktop browser.

References

Privacy and availability

  • Runs entirely in your browser — zero server processing
  • No signup or account required
  • Works offline once loaded
  • Fast, lightweight, no external dependencies
  • Available as a browser extension for Chrome and Firefox