SQL Murder Mystery
There's been a Murder in SQL City! The SQL Murder Mystery is designed to be both a self-directed lesson to learn SQL concepts and commands and a fun game for experienced SQL users to solve an intriguing crime.
If you just want to solve the mystery, go to mystery.knightlab.com. If you're new to SQL, you may want to start at our walkthrough. It won't teach you everything about SQL, but it should teach you all that you need to solve the mystery.
What Else is Here?
Before we built the web-based version, we designed this for people to download and solve on their own computer. If you're interested in that, read on.
What you need to solve on your own computer
- sql-murder-mystery.db: This SQLite database file contains all the data that you will be working with.
- prompt: Depending on your experience level with SQL, find the prompt in either the prompt_experienced file or the prompt_beginner file.
- reference: This is a crash course on SQL concepts and commands.
- a SQLite environment of your choice: For beginners, we recommend using SQLiteStudio, which is a good graphical interface to use to inspect your data and write queries.
For SQL beginners: start with the reference, read the prompt_beginner file, then get started by installing SQLiteStudio and loading the db file. If you get stuck at any point, feel free to refer back to the reference, or file a GitHub issue so we can know where our instructions need to be improved.
For experienced SQL users: read the prompt_experienced file, then download the sql-murder-mystery.db file and use a SQL environment of your choice to solve the mystery. You can use the reference to refresh your memory of SQL. Try to complete the activity all within your SQL environment (without writing down notes)!
Checking the Solution
Write the following queries in your SQL environment to check whether you've found the right murderer:
INSERT INTO solution VALUES (1, "Insert the name of the person you found here"); SELECT value FROM solution;
This murder mystery was inspired by a crime in the neighboring Terminal City.