SQL Playground
Write SQL and run it against a fresh in-memory database — CREATE, INSERT, SELECT, JOIN, GROUP BY. Results as a table, CSV, or JSON. Runs entirely in your browser, nothing is uploaded.
SQL Playground
Write SQL, hit run, see results — no database to install, no server, no signup. Each run spins up a fresh in-memory database in your browser using WebAssembly, executes your statements in order, and shows the result of the last one. Nothing is uploaded; everything happens locally.
How it works
The database is empty and brand new on every run, so include the schema and data you want to query in the same script:
CREATE TABLE users (id INTEGER, name TEXT, age INTEGER);
INSERT INTO users VALUES (1, 'Ann', 30), (2, 'Bob', 25), (3, 'Cleo', 41);
SELECT name, age FROM users WHERE age >= 28 ORDER BY age DESC;
Separate statements with ;. The result shown is whatever the last statement
produces — a result set for a SELECT, or a "rows affected" line for an
INSERT / UPDATE / DELETE.
What's supported
- DDL —
CREATE TABLE,DROP TABLE,ALTER TABLE,CREATE INDEX. - DML —
INSERT,UPDATE,DELETE. - Queries —
SELECTwithWHERE,ORDER BY,LIMIT,OFFSET,GROUP BY,HAVING, andJOIN. - Aggregates & functions —
COUNT,SUM,AVG,MIN,MAX, plus common string/number functions. - Types —
INTEGER,FLOAT,TEXT,BOOLEAN,DATE,TIMESTAMP, and more, withNULLhandling.
Output formats
- Table — an aligned ASCII grid, easy to read at a glance.
- CSV — comma-separated with a header row, ready to paste into a spreadsheet.
- JSON — an array of row objects, handy for piping into other tools.
Examples
SELECT 1 + 1 AS sum;— quick scratchpad math.- A
GROUP BYreport:SELECT city, COUNT(*) AS n FROM users GROUP BY city ORDER BY n DESC; - A
JOINacross two tables you create in the same script.
FAQ
Do I need to set up a database?
No. A fresh in-memory database is created for each run and discarded afterward — there is nothing to install or connect to.
Is my SQL or data uploaded?
No. The SQL engine runs locally in your browser via WebAssembly. Your queries and data never leave your machine.
Is the data saved between runs?
No. Every run starts from an empty database,
so put your CREATE TABLE and INSERT statements in the same script as your
query.
Which SQL dialect is this?
A standards-leaning subset implemented by a
pure-Rust SQL engine — most common CREATE/INSERT/SELECT features work;
engine-specific extensions may not.
Developer & Automation Access
Run it from the terminal
Same engine as this page, headless — via the gizza CLI:
gizza tool sql-playground "CREATE TABLE users (id INTEGER, name TEXT, age INTEGER);
INSERT INTO users VALUES (1, 'Ann', 30), (2, 'Bob', 25);
SELECT name, age FROM users WHERE age >= 28 ORDER BY age DESC;"New to the CLI? Get gizza →
Open it by URL
Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:
https://gizza.ai/tools/sql-playground/?sql=CREATE%20TABLE%20users%20%28id%20INTEGER%2C%20name%20TEXT%2C%20age%20INTEGER%29%3B%0AINSERT%20INTO%20users%20VALUES%20%281%2C%20%27Ann%27%2C%2030%29%2C%20%282%2C%20%27Bob%27%2C%2025%29%3B%0ASELECT%20name%2C%20age%20FROM%20users%20WHERE%20age%20%3E%3D%2028%20ORDER%20BY%20age%20DESC%3B&format=tableMachine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
