DevBolt
Processed in your browser. Your data never leaves your device.

How do I run SQL queries online without installing anything?

Type or paste your SQL into the editor and click Run to execute it instantly against a full SQLite database running in your browser via WebAssembly. You can CREATE tables, INSERT data, run JOINs, window functions, CTEs, and aggregations — or load one of the sample datasets to start practicing immediately. Everything runs client-side — your queries and data never leave your device.

Samples:

Loading SQLite engine…

SQLite dialect • Multiple statements supported508 chars
Run a query to see results

SQLite Quick Reference

Data Definition

CREATE TABLE t (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  val REAL DEFAULT 0
);
ALTER TABLE t ADD col TEXT;
DROP TABLE IF EXISTS t;

Queries

SELECT * FROM t WHERE x > 5;
SELECT a, COUNT(*) FROM t
  GROUP BY a HAVING COUNT(*) > 1;
SELECT * FROM t1
  JOIN t2 ON t1.id = t2.fk;

Data Manipulation

INSERT INTO t (a, b)
  VALUES (1, 'x'), (2, 'y');
UPDATE t SET a = 10 WHERE id = 1;
DELETE FROM t WHERE a IS NULL;

Functions

COUNT, SUM, AVG, MIN, MAX
LENGTH, UPPER, LOWER, TRIM
SUBSTR, REPLACE, INSTR
COALESCE, NULLIF, IIF
date, time, datetime, strftime

Window Functions

ROW_NUMBER() OVER (
  PARTITION BY col
  ORDER BY col2
)
RANK, DENSE_RANK, NTILE
LAG, LEAD, FIRST_VALUE

CTEs & Subqueries

WITH cte AS (
  SELECT a, COUNT(*) AS cnt
  FROM t GROUP BY a
)
SELECT * FROM cte
  WHERE cnt > 1;

How It Works

In-Browser SQLite

This playground runs a complete SQLite database engine in your browser using WebAssembly. No server required — your queries and data never leave your device.

Full SQL Support

Supports CREATE, INSERT, UPDATE, DELETE, SELECT with JOINs, subqueries, CTEs, window functions, aggregations, indexes, views, triggers, and more.

Multiple Statements

Run multiple SQL statements in sequence separated by semicolons. Each statement's results display separately with execution timing.

Schema Inspector

Click "Schema" to view all tables in your database with their CREATE TABLE definitions. Useful for checking column names and types.

Powered by sql.js (SQLite compiled to WebAssembly). Your SQL and data are processed entirely in your browser — nothing is sent to any server. Database resets when you refresh the page.

Frequently Asked Questions

How does this SQL playground work without a server?
This SQL playground runs a complete SQLite database engine directly in your browser using WebAssembly (WASM). The sql.js library compiles the official C-based SQLite source code to WebAssembly, giving you a fully functional relational database with zero server dependencies. Your queries execute locally — no data is transmitted over the network. The database exists only in memory and resets when you refresh the page.
What SQL features does SQLite support?
SQLite supports most of standard SQL including CREATE TABLE, INSERT, UPDATE, DELETE, SELECT with JOINs (INNER, LEFT, CROSS), subqueries, Common Table Expressions (WITH/CTEs), window functions (ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, SUM/AVG OVER), GROUP BY with HAVING, UNION/INTERSECT/EXCEPT, CASE expressions, indexes, views, triggers, and transactions. SQLite uses dynamic typing with type affinities (INTEGER, REAL, TEXT, BLOB, NULL) rather than strict column types. It does not support RIGHT JOIN, FULL OUTER JOIN, or stored procedures.
Can I use this to practice for SQL interviews?
Yes — this playground is ideal for SQL interview preparation. You can create your own tables, insert test data, and practice common interview topics: JOINs, GROUP BY with HAVING, window functions (ROW_NUMBER, RANK, running totals), CTEs for recursive queries, subqueries, self-joins, and set operations (UNION, INTERSECT, EXCEPT). Use the sample datasets to get started quickly, or create custom schemas matching the problem you're studying. The in-browser execution gives you instant feedback without needing to install PostgreSQL or MySQL locally.
Is my SQL data safe in this tool?
Yes. The SQLite database runs entirely in your browser's memory using WebAssembly. No SQL statements, table data, or query results are sent to any server. You can verify this by checking your browser's Network tab — no requests are made when you run queries. The database is ephemeral: it resets completely when you refresh the page. This makes it safe for practicing with realistic data schemas without privacy concerns.

Related Inspect Tools