SQL Murder Mystery
Os jogos salvos ficam apenas neste navegador.
Sobre o jogo
SQL Murder Mystery é uma história de detetive que você resolve escrevendo consultas a um banco de dados. Um assassinato aconteceu em SQL City em 15 de janeiro de 2018. A polícia tem um banco com relatórios de cena de crime, entrevistas de testemunhas, carteiras de motorista, entradas numa academia, presença em eventos e dados de renda, e mais nada. Você começa achando o relatório da cena do crime, e cada resposta que lê aponta para a próxima tabela a vasculhar, até poder dizer o nome do assassino.
O jogo funciona como aula e como quebra-cabeça. Iniciantes podem abrir o walkthrough, que apresenta SELECT, WHERE, LIKE,
JOIN e mais algumas peças do SQL, só o bastante para fechar o caso, com exercícios curtos no caminho. Quem já sabe SQL pode
pular e começar só com a primeira pista. Quando achar que sabe quem foi, um exercício no fim confere a sua resposta. O jogo e os
textos estão em inglês.
Jogando aqui
Clique em Play e a primeira página abre. Cada caixa de fundo colorido é um pequeno editor de SQL ligado ao banco do caso, que roda inteiro no seu navegador (o banco é um arquivo SQLite e as consultas são executadas pelo sql.js, então nada é enviado a lugar nenhum). Edite a consulta, aperte Run e as linhas aparecem embaixo; o banco é o mesmo para todas as caixas da página, então o que você descobre num exercício vale no seguinte. Um link na primeira página mostra o diagrama de todas as tabelas, que vale deixar à mão.
A caixa de solução no fim deixa você inserir sua resposta numa tabela e ler de volta se estava certa. Recarregue a página para voltar às consultas de exemplo.
Controles
| Entrada | Ação |
|---|---|
| Teclado | escrever SQL nas caixas de edição |
| Botão Run | executar a consulta daquela caixa |
| Botão Reset | restaurar a consulta de exemplo da caixa |
| Links no texto | ir entre a página principal e o walkthrough, mostrar o diagrama do esquema |
Algumas coisas que vale saber
Comece pelo relatório. O texto dá a data, o tipo de crime e a cidade; a tabela crime_scene_report é onde você começa, e ela
diz onde olhar em seguida.
Leia as transcrições. As entrevistas com testemunhas são longas, e os detalhes que importam estão escondidos nas frases. Buscar
texto com LIKE ajuda.
Use o diagrama. Muitas tabelas se ligam por ids; fazer JOIN entre elas é como você vai de um nome a uma placa de carro ou a uma carteirinha da academia.
Confira e depois aprofunde. O primeiro nome que você achar pode não ser o fim da história. A caixa de conferência no fim diz se você acertou, e o walkthrough percorre o caso inteiro passo a passo se você travar.
Créditos e licença
SQL Murder Mystery foi criado por Joon Park e Cathy He quando eram bolsistas do Knight Lab da Northwestern University, e adaptado para a web por Joe Germuska; foi inspirado pelo mistério de assassinato de linha de comando de Terminal City. O código é distribuído sob a licença MIT, e o texto, o banco de dados e o diagrama sob a licença Creative Commons Attribution-ShareAlike 4.0, como declarado no README do repositório no GitHub. A página contém ainda CodeMirror, lodash e sql.js (licença MIT, com o SQLite em domínio público) e os componentes de exercício de SQL de Zi Chong Kao, liberados em domínio público. Mudamos as páginas: o cabeçalho e o rodapé do Knight Lab, a ilustração do detetive (de um site de imagens, sem licença aberta), o rastreamento, as tags de redes sociais e as fontes carregadas de outros sites foram removidos, e o estilo é nosso, de modo que nada é pedido a outros sites. Os textos das licenças estão linkados nesta página.