What is MISSQL Command?

MISSQL Command is a web application designed to help you learn SQL, the language of love databases.

Get Started!

You can also sign up for an account to save your progress.

How Do I Play?

Become a MISSQL Commander and you'll work your way through 10 levels. In each level you'll save the world from nuclear annihilation using SQL queries.

Get the correct results and you'll be a hero (and move on to the next level).

No idea what SQL is or why you'd want to use it? Then MISSQL Command is definitely for you.

How Do I Get in Touch?

MISSQL Command is an open source project hosted on Github. If you have a question, see a bug, or just want to get in touch, open an issue on the MISSQL Command repository.

Guest accounts are deleted on a nightly basis. To preserve your progress, sign up for a permanent account.

How Does it Work?

MISSQL Command is built in a way that is modular and extensible. Levels are loaded from YAML files which are easy to create and update.

Users and Databases

Each user on MISSQL Command gets their own sandboxed Postgres database where their queries are run and then rolled back within a transaction. When a user visits a level, the data for that level is loaded into the user's database. When a visitor comes to the site without an account, a guest account is created for them and tied to their session. If that visitor should decide to sign up for a full account, their progress will be saved and transferred to the new permanent account.

The SQL REPL

MISSQL Command uses AJAX to create a REPL (Read-Evaluate-Print Loop) for SQL queries. When a user enters a query, it gets sent back to the MISSQL Command server where it gets run against the user's database. The results of the query are evaluated for correctness, and analysed for common errors and mistakes. The results and hints are packaged into a JSON response object and sent back to the user's browser and rendered into the output log of the REPL.

Who is MISSQL Command?

MISSQL Command was built at Flatiron School by: