Eine SQL-Aufgabe mit eigener Datenbank stellen
Eine SQL-Aufgabe besteht aus zwei Tabs: der Abfrage, die die Lernenden schreiben, und dem Schema, das die Datenbank anlegt und füllt, auf der sie läuft. Beides legen Sie fest.
Das Schema gehört zur Aufgabe
Sie schreiben das `CREATE TABLE` und die `INSERT`-Anweisungen, sodass alle Lernenden dieselben Daten abfragen und Sie wissen, wie die richtige Antwort lautet. Die Tabellen werden neben dem Editor angezeigt, sodass sich niemand einen Spaltennamen merken muss.
Es ist SQLite und läuft bei jedem Versuch in einem eigenen Container. Jeder Lauf baut eine frische Datenbank im Arbeitsspeicher auf, wendet Ihr Schema an und dann die Abfrage. Wer eine Tabelle löscht, hat also nur die eigene Kopie gelöscht und die aller anderen nicht.
Eine neue SQL-Aufgabe öffnet sich mit einer kleinen Schuldatenbank, die sofort abgefragt werden kann: students, courses und enrollments mit je fünf Zeilen, genug, um ein select, ein where, ein order by und einen join auszuprobieren, bevor Sie ein eigenes Schema schreiben.

Ausführen
„Ausführen“ führt die Abfrage aus und zeigt die Zeilen. „Schema ausführen“ baut die Datenbank neu auf, der Weg zurück nach einem Experiment, das schiefgegangen ist.
Automatisch bewerten mit einer Musterlösung
Geben Sie der Aufgabe eine Musterlösung, dann bewertet „Tests ausführen“ sie für Sie. Ein dritter Tab, „Musterlösung“, enthält Ihre eigene Abfrage. Die Abfrage der Lernenden und Ihre laufen beide auf demselben Schema, und ihre Zeilen werden verglichen, wobei die Reihenfolge unberücksichtigt bleibt, Duplikate aber nicht: Eine Antwort, die in anderer Reihenfolge zurückkommt, besteht, eine, die eine Zeile einmal liefert, wo sie zweimal kommen müsste, nicht. Es werden dieselben Spalten in derselben Reihenfolge verlangt, die Spaltennamen werden jedoch nicht verglichen.
Das Ergebnis ist ein einfaches Bestanden oder Nicht bestanden, ohne Teilpunkte und ohne Anzahl. Eine Abfrage, die gar nicht ausgeführt werden kann, zeigt „Nicht ausführbar“ statt „Nicht bestanden“, denn ein Syntaxfehler und eine falsche Antwort verdienen unterschiedliche Rückmeldungen. Die Musterlösung ist für Lernende verborgen, es sei denn, Sie setzen das Häkchen bei „Musterlösung für Lernende anzeigen, nur lesbar“. Die Schaltfläche wird ihnen in jedem Fall angeboten, sodass sie ihre Arbeit immer prüfen können.
In einer Lektion, und das Schema sperren
Ein SQL-Codeblock in einer Lektion hat dieselben zwei Tabs: Schreiben Sie das Schema einmal, und alle Lernenden führen ihre Abfragen auf diesen Tabellen aus, ohne die Lektion zu verlassen. Dasselbe gilt für eine SQL-Aufgabe, die einer Lektion hinzugefügt wird.
Setzen Sie das Häkchen bei „Schema für Lernende sperren“, dann sehen sie das Schema, können es aber nicht ändern, sodass alle die von Ihnen festgelegten Daten abfragen. Ohne Häkchen kann jede und jeder die eigene Kopie ändern.
Häufige Fragen
- Welcher Dialekt?
- SQLite, das nah genug an den Lehrplänen liegt und keinen Server braucht.
- Können Lernende die Daten sehen, bevor sie sie abfragen?
- Ja. Die Tabellen stehen mit ihren ersten Zeilen neben dem Editor.