100% Free — No Install Required

Practice SQL.
Right Here.
Right Now.

A real SQLite database running in your browser. No login. No install. No cloud. 15 exercises from beginner SELECT to advanced JOINs and subqueries. The fastest way to get comfortable with SQL.

Open the Lab See Exercises
15 exercises
4 tables pre-loaded
SQLite in browser
0 account needed
 SQLite Runs in Your Browser
 50K+ Guide Downloads
 5.0 PPH Rating / 38 Reviews
 15 Practice Exercises
 14yr Emirates Airline IT
 7,855 LinkedIn Followers
 SQLite Runs in Your Browser
 50K+ Guide Downloads
 5.0 PPH Rating / 38 Reviews
 15 Practice Exercises
 14yr Emirates Airline IT
 7,855 LinkedIn Followers

Your SQL Sandbox.

Write any query against the live database. Pick an exercise or freestyle your own.

Progress
0 / 15
Database Schema
employees
  • idPK
  • nameTEXT
  • dept_idINT
  • salaryINT
  • hire_dateTEXT
  • cityTEXT
departments
  • idPK
  • nameTEXT
  • manager_idINT
  • budgetINT
projects
  • idPK
  • titleTEXT
  • dept_idINT
  • statusTEXT
  • budgetINT
assignments
  • emp_idINT
  • proj_idINT
  • roleTEXT
  • hoursINT
Exercises
Loading SQLite engine...
Enjoying this free SQL lab? It took real hours to build the exercises, seed the database, and make everything run in-browser with no install. If it saved you time or taught you something, a $3 coffee keeps it free and maintained for the next person who needs it.
☕ Buy Me a Coffee ($3) →

SQL Commands At a Glance.

The core commands covered in this lab. Click any table name in the schema panel to auto-insert it.

🔍
SELECT / WHERE
Filtering Data
Retrieve rows matching conditions. Use AND / OR / IN / BETWEEN / LIKE for filtering. The foundation of every query.
📊
GROUP BY / HAVING
Aggregating Data
Combine rows with COUNT, SUM, AVG, MAX, MIN. Use HAVING to filter aggregated results (like WHERE but for groups).
🔗
JOIN
Combining Tables
INNER JOIN returns matching rows. LEFT JOIN keeps all left-side rows. Used to link employees to departments, projects, and more.
📋
ORDER BY / LIMIT
Sorting & Paging
Sort results ASC or DESC on any column. LIMIT caps the number of rows returned. Combine both for pagination.
🪆
Subqueries
Queries Within Queries
Nest a SELECT inside WHERE or FROM. Use IN (subquery) to filter against a dynamic list, or correlated subqueries for per-row logic.
🔤
String Functions
Working With Text
UPPER, LOWER, LENGTH, SUBSTR, REPLACE, TRIM. SQLite also supports LIKE with % and _ wildcards for pattern matching.

More Free Tools & Guides.

Weekly Linux & IT Tips
For Free.

Follow for free guides, new lab tools, and sysadmin career tips every week.

☕ Support