⌕ Test & Debug

SQL Runner (SQLite)

Run SQL queries against an in-browser SQLite database. Paste your schema, seed data, and query — instant results.

Updated

SQLite WASM Schema explorer Instant results No install

Loading SQL Runner…

What this page sends

  • Your input: Your schema, data and queries run in an in-memory SQLite database in this tab and disappear when you close it. The first visit fetches the ~650 KB SQLite WebAssembly engine from ByteKiln (not a third-party CDN); the browser caches it afterwards.
  • Page load: Loading the page requests HTML, scripts and images from ByteKiln, fonts from Google Fonts, and sends Google Analytics page views, tool-usage events and catalog interactions (tool/category IDs, result status and whether a click followed search — never your input, output or search terms). Privacy & sharing

How the SQL Runner (SQLite) Works

The ByteKiln SQL Runner uses sql.js — a WebAssembly build of SQLite — served from ByteKiln itself, with no third-party CDN. The engine is fetched once on first load; after that your schema and queries run in the page, not on a server.

In-memory database

sql.js creates a transient SQLite database in your browser's memory. You define the schema using standard DDL (CREATE TABLE, INSERT) in the left panel, then run SELECT or other queries in the right panel.

Result display

Each SELECT statement produces a result set displayed as a table with column headers, row data, and a row count. NULL values are displayed as NULL in a muted color. BLOB columns show <blob> as a placeholder.

Table explorer

After loading a schema, the table explorer in the status bar shows each table name and column count. Hovering a table badge displays the column names and types as a tooltip.

Limitations

  • It is SQLite (sql.js), so SQL Server, PostgreSQL and MySQL syntax — TOP, SERIAL, stored procedures, schemas — may fail or behave differently.
  • The database lives in memory and is lost when you refresh or close the tab; there's no import of existing .db files or export of the database.
  • The first visit downloads a ~650 KB WebAssembly engine; if a content blocker stops it, the tool can't start.
  • Very large result sets are rendered in full, which gets slow in the page — add a LIMIT while exploring.

FAQ

Short answers for the things developers usually ask before trusting a tool.

What SQL dialect does this support?

SQLite syntax. This covers most standard SQL including CREATE TABLE, SELECT, JOIN, GROUP BY, subqueries, CTEs (WITH), triggers, and views. MySQL or PostgreSQL-specific syntax may or may not work depending on the SQLite version bundled.

Is my data stored anywhere?

No. The SQLite database exists only in your browser's memory tab. Closing or refreshing the page destroys it. Your schema, data and queries are not sent to a server; the only network fetch is the SQLite engine itself, from ByteKiln, on first load.

How do I reset the database?

Click "Reload DB" to re-execute the Schema panel, which drops the old in-memory database and creates a fresh one. This is useful after experimenting with INSERT, UPDATE, or DELETE statements.

Can I run multiple statements?

Yes. The schema panel supports any number of CREATE TABLE, INSERT, and other DDL/DML statements. The query panel also supports multiple SELECT statements separated by semicolons — each produces its own result set.

Why does the first load take a moment?

The SQLite engine is a ~650 KB WebAssembly file, downloaded from ByteKiln itself the first time you open the tool. After that the browser caches it, so later loads are near-instant. If it cannot be downloaded (for example, offline or blocked by a content blocker), the tool shows an error and "Reload DB" retries.

Related tools

Useful follow-ups when one conversion usually turns into three more.

Want the background and worked examples? There's a longer write-up.

Read the SQL Runner guide