{{ schema }}
| {{ h }} |
|---|
Download full SQL dump of the database.
SQLite keeps a complete relational database inside one portable file. That file can hold tables, indexes, triggers, and views without a separate database server, which is why SQLite appears in desktop software, mobile apps, local caches, test fixtures, and exported app data. The format is easy to move around, but that portability also means inspection often starts with an unfamiliar file dropped into your lap.
The job is rarely abstract. You might need to confirm whether a table still has the expected columns, check one customer's row before a support reply, review a view definition from a shipped app, or make a tiny correction in a copied database before handing it back. In each case the file itself is the source of truth, so the useful workflow is to open it quickly, see its schema clearly, and run narrow checks instead of building a full administration stack around it.
Browser-based inspection fits that situation well because the database can be examined where it already sits. That convenience still has boundaries. A visible row grid does not mean every object is safely editable, a quick export is not the same thing as a backup policy, and a successful preview does not replace a deliberate verification query after a write.
The safest habit is to treat each SQLite file as a portable database snapshot. Read the schema first, identify the exact object you are working with, then make small, deliberate checks or edits and confirm them with a fresh query before you move on.
SQLite stores both structure and data in the same database file. The schema table, historically exposed as sqlite_master and formally documented as the schema table, records one row for each table, index, view, and trigger together with the SQL text that created it. That catalog is the reason a SQLite inspection workflow can answer two different questions from the same file: what objects exist, and how each object was defined.
Row addressing matters just as much as schema. Ordinary SQLite tables have a hidden 64-bit rowid unless they are declared WITHOUT ROWID. If a table declares an INTEGER PRIMARY KEY, that column becomes an alias for the rowid. Views are different again: SQLite treats views as read-only unless they are paired with INSTEAD OF triggers. Those rules explain why some objects are comfortable to browse and edit quickly while others are better handled as read-mostly inspection targets or through precise SQL statements.
On this page, the summary counts come from user-defined entries in the schema table, the schema panel shows the stored CREATE statement for the selected object, and the fastest browse path asks SQLite for the selected object's first 100 rows together with a helper __rowid__ column. The custom query area can run broader SQL, but the results grid shows only the first returned result set. That makes ordinary rowid tables the smoothest path for quick browsing, while views, WITHOUT ROWID tables, and write-only statements need a more careful reading of the output.
| Object type | What SQLite stores | Why it matters during inspection |
|---|---|---|
| Table | Persistent rows plus the table definition. | The normal place for row review, filtering, and small data fixes. |
| View | A stored query definition. | Useful for understanding business logic or exporting a derived row set, but read-only unless paired with INSTEAD OF triggers. |
| Index | Lookup structure plus index definition. | Confirms how rows are meant to be found quickly, even though the index itself is not a row-edit target. |
| Trigger | Stored SQL that runs on matching write events. | Explains side effects that may happen after an insert, update, or delete. |
| Structure or result | SQLite rule | Practical consequence here |
|---|---|---|
| Ordinary rowid table | A hidden rowid is available unless the table was declared WITHOUT ROWID. |
The browse preview and inline row updates are most comfortable on this kind of table. |
Table with INTEGER PRIMARY KEY |
The primary-key column aliases the rowid. | Quick verification is easier because the hidden row address and the visible key line up. |
WITHOUT ROWID table |
No hidden rowid exists. | Use precise SQL keyed by the real primary key instead of assuming the browse shortcut will be enough. |
| View | SQLite views are read-only unless INSTEAD OF triggers make writes possible. |
The safe default is inspection, filtering, and export rather than inline editing. |
| Write statement with no returned rows | UPDATE, INSERT, and DELETE do not have to return a result set. |
A follow-up SELECT is the reliable way to confirm what changed. |
Start in Browse when the file is unfamiliar. Selecting a table or view gives you three fast orientation cues at once: the database name and object counts, the stored schema text, and a capped preview of the object's first rows. That is usually enough to answer early questions such as whether you opened the right file, whether the object is a base table or a view, and which columns deserve a narrower follow-up query.
Move to Query as soon as the job needs joins, aggregation, typed values, or exact filtering. It is also the better path when the schema shows WITHOUT ROWID, when the selected object is a view, or when you need to write real SQL expressions such as NULL, arithmetic, or date functions. Keep multi-step work small and readable, because the grid shows only the first returned result set and because a narrow verification query is easier to trust than a long batch pasted all at once.
The inline grid edit mode is best treated as a quick text-fix lane. Each changed cell is queued and then written back in one save step keyed by the helper __rowid__ column. That is convenient for fixing a misspelled name, a short status value, or another obvious textual correction in an ordinary rowid table. It is the wrong fit for typed SQL updates, for complex predicates, and for objects whose write path depends on a composite key or trigger logic.
CSV, JSON, or DOCX.History to rerun past checks, but remember it keeps up to 40 unique query strings on the device until you delete them or clear site data.Export only when you want the whole current database file as a snapshot. The download is named with a .sql extension, but it is produced from the database bytes rather than rendered SQL text.Before you trust any write, rerun a tight SELECT that isolates the changed row and compare the returned values against the schema you intended to edit. That follow-up query is the clearest checkpoint this page gives you.
.db or .sqlite file through SQLite File and wait for the database summary badges to appear.Browse for the first pass, pick a table or view, and read the Schema panel before you decide whether this is a read-only check or a candidate for a small edit.CSV, JSON, or DOCX. If not, switch to Query and write a narrower SELECT.Edit only for small text corrections on an ordinary rowid table. For anything that depends on the real primary key, typed values, or SQL functions, write the change in Query instead.SELECT that isolates the affected row or rows. Do not rely on the previous grid alone.Export as the final snapshot step and then Unload if you want to clear the active file from the page.The summary badges tell you what kind of database you opened, not whether the data is healthy. A high table count may simply mean the file belongs to a feature-rich app. A trigger count can signal background logic, but it does not say whether those triggers are good or bad. Treat the counts as orientation, then use the selected object's schema and row output to answer the real question.
The schema text is the most important trust check on the page. If it starts with CREATE VIEW, read the result as a derived row set rather than a base table. If it ends with WITHOUT ROWID, do not assume the browse-and-edit shortcut will behave like an ordinary rowid table. If it shows trigger references, remember that apparently simple writes may have side effects elsewhere in the file.
No results is easy to overread. Here it means the executed SQL did not produce a displayed row set. That can happen because the statement was a write, because it matched no rows, or because the first result set was empty. The right next step is not guesswork. Run a targeted SELECT that proves what changed or confirms that nothing matched.
| Signal | What it means | What to check next |
|---|---|---|
T, V, I, Tr |
Counts of user-defined tables, views, indexes, and triggers from the schema catalog. | Pick the object you actually need before writing any SQL. |
Schema |
The stored CREATE statement for the selected object. |
Confirm whether you are dealing with a base table, a view, a WITHOUT ROWID table, or trigger-related logic. |
__rowid__ |
A helper row address for the browse preview on ordinary rowid tables. | Treat it as a local maintenance aid, not as a durable business identifier. |
Save 1, Save 2, and so on |
The number of queued cell edits waiting to be written. | Review whether those changes belong in quick inline edits or in a deliberate SQL statement. |
No results |
The page has no returned row set to display from the last executed SQL. | Run a verification SELECT instead of treating the message as a final success or failure report. |
Suppose you receive orders.sqlite from a desktop app and need to confirm whether the last few orders have the right status. Load the file, stay in Browse, choose the orders table, and read the schema first. If the preview already shows the right columns, switch to Query and run SELECT id, status, updated_at FROM orders ORDER BY updated_at DESC LIMIT 20;. That gives you a tight answer without wandering through unrelated tables, and you can export the returned row set as CSV or JSON if someone else needs the same slice.
Imagine the customers table contains one misspelled city name and the schema shows an ordinary base table rather than a view. Open that table in Browse, click Edit, fix the cell, and confirm the save button shows one pending change. Save it, then move to Query and run a narrow check such as SELECT rowid, city FROM customers WHERE rowid = 42;. That is the right pattern for a tiny text correction because the write is small, the row is isolated, and the verification query is explicit.
WITHOUT ROWID table as a precision jobNow imagine the schema says CREATE VIEW recent_orders ... or shows a table definition ending in WITHOUT ROWID. In that case, use the preview to understand the shape and then move to Query for any serious work. A read check such as SELECT * FROM recent_orders LIMIT 20; is fine. A write should be aimed at the real base table and real key columns, not at the browse shortcut. The preview still helps you understand the file, but the safe write path becomes deliberate SQL rather than inline editing.
The database is opened in the browser session, and routine inspection work happens there rather than through a server upload. Query history is different: saved statements remain in browser storage on the device until you remove them or clear site data.
Because SQLite objects do not all behave the same way. Ordinary rowid tables are the easiest edit targets. Views are read-only unless they use INSTEAD OF triggers, and WITHOUT ROWID tables do not expose the hidden rowid shortcut that the quick browse path expects.
No results appear after UPDATE or DELETE?Because those statements often change data without returning a row set to display. The page clears the grid and shows No results until you run a follow-up SELECT.
No. The export is built from the database bytes and saved with a .sql filename. Treat it as a database snapshot download, not as rendered SQL text you would read line by line.
History?The page stores up to 40 unique query strings that you have run successfully. That makes repeated checks faster, but it also means sensitive query text can stay on the device until you delete it.