OmniSelect FileSQL

Guides
← Back to App
Home › Guides › Exploring a SQLite database in a browser tab

Exploring a SQLite Database in a Browser Tab

SQLite is inside phones, browsers and countless desktop apps, and it is how a lot of data changes hands: one .db or .sqlite file, a whole database in it. Looking inside usually means installing something first. It does not have to.

The Usual Routes

ApproachWhat it costs
The sqlite3 command-line shellSmall and excellent — a download, a terminal, and dot-commands such as .tables to learn.
DB Browser for SQLiteA good free desktop app. Still an install, which on a managed machine means a ticket.
Python’s sqlite3 moduleBuilt into Python, if Python is there, and you write the code.
An online SQLite viewerNo install, but the database is uploaded to someone else’s server — with whatever an app kept in it.

Doing It in the Browser

OmniSelect FileSQL opens the file with SQLite itself — the real SQLite library, compiled to WebAssembly (sql.js) and served from this site — so it reads what SQLite reads. It runs inside your browser tab and the database is never uploaded.

  1. Open the app.
  2. Drop the database onto the File Select panel. .sqlite, .sqlite3, .db, .db3 and .gpkg all work. The file gets a row with a one-letter table name in the Alias column — bookshop.sqlite becomes B — and its Sheet list holds the database’s tables, then its views: authors, books, sales, bestsellers.
  3. Pick a table. The first one is loaded to begin with. Choose sales in the Sheet list and B is now the sales table:
    SELECT * FROM B
sale_idbook_idsold_onqtychannel
112026-05-023online
242026-05-025shop
322026-05-031online
412026-05-042shop

Ask in plain English and the SQL is written for you, inside your browser. total qty by channel becomes:

SELECT channel, SUM(qty) AS total_qty FROM B GROUP BY channel
channeltotal_qty
online13
shop17

Two Tables From One Database

Each row of the File Select panel is one table. To join two tables of the same database, add the file a second time: it gets a second row and the next free letter — A here, since B is taken — and you choose a different table in that row’s Sheet list. With B on sales and A on books, copies and revenue per title:

SELECT A.title, SUM(B.qty) AS copies, SUM(B.qty * A.price) AS revenue
FROM B
JOIN A ON B.book_id = A.book_id
GROUP BY A.title
ORDER BY revenue DESC
titlecopiesrevenue
Lagos by Night11154
The Salt Road9116.91
Paper Lanterns657
Small Engines237
Counting Rivers121
Tidewater110.99

Add it a third time for a third table. Each copy is read on its own, and the file on your disk is never touched.

Drop a .db or .sqlite file in and see inside it.

Open the app →

Views, and What Is Left Out

Views are in the Sheet list, after the tables. Choosing one runs the view’s own SQL inside SQLite and loads its result — bestsellers here gives each title with its copies sold, already totalled.

SQLite’s own bookkeeping is left out: the sqlite_ tables, and the metadata tables GeoPackage and SpatiaLite add. For a GeoPackage (.gpkg), the Sheet list shows the data tables the file itself lists as its contents.

Worth Knowing

Getting Data Out

Any result exports from the Export menu as CSV, Excel, JSON or Parquet, holding every row of the result — not just the rows on screen. Pick a table, run SELECT * FROM B, and export it: that is a SQLite table turned into a spreadsheet, with no command line involved.

Reasonable Questions

How do I see a table’s columns?

Choose it in the Sheet list and run SELECT * FROM B LIMIT 1. The result headers are its columns.

Can I run INSERT, UPDATE or CREATE?

No — this is for reading. For changing a database, the sqlite3 shell or DB Browser for SQLite is the right tool.

Can I join a SQLite table to a CSV or Excel file?

Yes. Every file you add is a table, whatever its format — see one query across seven file formats.

Is anything uploaded?

No. SQLite runs inside the tab, and after the page has loaded it makes no network requests — check it yourself.

Related Guides