Aufbau eines SQL-Spiels
Ein SQL-Spiel hat die Dateiendung .xml
und enthält die folgenden Elemente.
-
Spielname
-
Teaser: Ein kurzer Beschreibungstext
-
Copyright-Hinweis
-
Datenbank: Die Datenbank ist entweder ein SQL-Skript (Dateiendung
.sql
) oder eine SQLite-Datenbank (Dateiendung.sqlite
,.sqlite3
,.db
,.db3
,.s3db
,.sl3
). Diese Datei wird im SQL-Spieleeditor hochgeladen und anschließend in die Spieldatei eingebettet. Die Spielszenen beziehen sich dann auf diese eingebettete Datenbank. -
Spielszenen: Mindestens eine Spielszene ist erforderlich. Es gibt vier verschiedene Szene-Typen:
Text-Szene Eine Text-Szene wird dem Spieler angezeigt und dient lediglich der Information. Mit einem Klick auf „Weiter“ gelangt der Spieler zur nächsten Szene. Im SQL-Editor wird eine Text-Szene wie folgt angezeigt.
Bild-Szene Eine Bild-Szene wird dem Spieler angezeigt und dient lediglich der Information. Mit einem Klick auf „Weiter“ gelangt der Spieler zur nächsten Szene. Im SQL-Editor wird eine Bild-Szene wie folgt angezeigt.
Select-Abfrage-Szene Eine Select-Abfrage-Szene besteht zunächst aus einem Text, der dem Spieler angezeigt wird. Der Spieler ist nun aufgefordert, eine SQL-Abfrage einzugeben. Das Ergebnis dieser Abfrage wird verglichen mit dem Ergebnis der in der Szene mitgelieferten SQL-Lösung. Es kann bereits ein Platzhalter für das SQL-Eingabefeld vorgegeben werden, um z.B. Teile der SQL-Abfrage bereits vorzugeben, z.B.
SELECT ... FROM fahrlehrer
. Im SQL-Editor wird eine Select-Abfrage-Szene wie folgt angezeigt.Wichtig: Es wird nicht die SQL-Abfrage selbst verglichen, sondern die Ergebnisse der SQL-Abfragen.
Es können zudem noch drei Optionen gesetzt werden (standardmäßig sind alle Optionen deaktiviert):
Zeilen: Reihenfolge für die Lösung relevant? Diese Option sollte gesetzt werden, wenn eine Sortierung ( ORDER BY
) vom Spieler erwartet wird. Die Reihenfolge wird dann beim Vergleich mit der Musterlösung berücksichtigt.Spalten: Reihenfolge für die Lösung relevant? Diese Option sollte gesetzt werden, wenn es relevant ist, in welcher Reihenfolge die Spalten in der Ergebnistabelle angezeigt werden. Die Reihenfolge wird dann beim Vergleich mit der Musterlösung berücksichtigt. Spalten: Bezeichnungen für die Lösung relevant? Diese Option sollte gesetzt werden, wenn es relevant ist, wie die Spalten in der Ergebnistabelle bezeichnet werden, also z.B. ein Alias mit AS
verwendet werden soll. Die Bezeichnungen werden dann beim Vergleich mit der Musterlösung berücksichtigt.Manipulations-Szene Eine Manipulations-Szene besteht zunächst aus einem Text, der dem Spieler angezeigt wird. Der Spieler ist nun aufgefordert, eine SQL-Anfrage einzugeben. Diese SQL-Anfrage sollte nun eine Manipulation der Datenbank bewirken, also eine
INSERT
,UPDATE
oderDELETE
-Anweisung sein. Nach Ausführung der SQL-Anfrage des Spielers ändert sich die Datenbank. Auf dieser geänderten Datenbank wird nun eine SQL-Prüfabfrage ausgeführt. Wenn z.B. die Tabellefahrlehrer
manipuliert worden sein soll, dann würde die SQL-PrüfabfrageSELECT * FROM fahrlehrer
diese Änderung bezeugen.Bedenke, dass die Datenbank vom Spieler zurückgesetzt werden kann, wenn er sie in einen „kaputten“ Zustand gebracht hat (in der Spielekonsole neben dem Eingabefeld).
Im SQL-Editor wird eine Manipulations-Szene wie folgt angezeigt.