Run SQL online with a real SQLite engine in your browser. Create tables, insert rows, run joins and exports — private, offline-capable and completely free.
An online SQL runner gives you a working relational database in a web page. Instead of installing a server, configuring users and connecting a client, you type SQL and press Run. That removes the single biggest obstacle for anyone learning the language: getting a database to exist in the first place.
The engine here is SQLite compiled to WebAssembly. SQLite is the most widely deployed database in the world — it ships inside phones, browsers, aircraft and countless applications — and the WebAssembly build is the same C code compiled for the browser. Queries you run are executed by a real query planner, not simulated.
The first time you press Run, the engine loads and an empty in-memory database is created. Every subsequent run executes against that same database, which is what makes a normal SQL workflow possible: create a table once, insert rows, then iterate on SELECT statements without rebuilding the data each time. Reset closes the database and starts over.
Each statement in your script is executed in order. Statements that return rows produce a result table with column headers; statements that modify data report how many rows changed. The log records execution time in milliseconds, which is useful when comparing two ways of writing the same query.
CREATE TABLE with primary keys, foreign keys, CHECK constraints, defaults and indexes.GROUP BY, HAVING, COUNT, SUM, AVG, MIN, MAX.ROW_NUMBER() and LAG().INSERT, UPDATE, DELETE, UPSERT, transactions with BEGIN and ROLLBACK.date(), strftime() and JSON functions.Start with one table and five rows you can verify by eye. Write a SELECT that returns them all, then add a WHERE clause and confirm the count changes as expected. Introduce a second table and join it. Only then move to aggregation, because most GROUP BY confusion is really confusion about which rows the join produced. Because every step here takes one keystroke to verify, this progression is far faster than reading about it.
SQLite is not a drop-in stand-in for every database. It has flexible typing, no separate schema namespaces, and it lacks vendor extensions such as Postgres arrays or MySQL-specific functions. For portable, standard SQL it is an excellent teacher; for dialect-specific production code, verify against your real engine. And because the database is in memory, treat every session as disposable unless you export it.
The engine, the database and your script all stay in your browser. Nothing is uploaded to Zubac Tools, and the Reset button clears both the database and the saved draft.
Convert query output with the JSON Playground, script transformations in the Python Runner, or explore data files with the CSV to JSON Converter.
Browse all free tools · Guides and tutorials · PDF tools · Developer tools · Text tools · SEO tools