Du hast eine eigene Datenbank. Sie läuft im Browser, du musst nichts installieren, und du kannst darin nichts kaputt machen, was nicht dir gehört.
Kein Simulator. Eine echte Datenbank, und ein Stück davon gehört dir.
Datebänkli ist eine PostgreSQL-Datenbank — dieselbe Software, die hinter einer Menge Webseiten, Fahrplänen und Onlineshops steckt. Du bekommst darin ein eigenes Konto und einen eigenen Bereich. Was du dort tust, tust du wirklich: Du schreibst SQL, der Server führt es aus, und wenn etwas nicht geht, bekommst du dieselbe Fehlermeldung wie jede Softwareentwicklerin auch.
Das Wichtigste zuerst, weil es die Art ändert, wie man damit arbeitet:
Dein Bereich gehört dir allein. Du kannst darin jede Tabelle löschen, jede Zahl verändern und jederzeit mit einem Klick von vorne anfangen. Niemand sonst ist davon betroffen, und du bekommst keinen Ärger dafür. Ausprobieren ist hier der Weg, nicht der Umweg — wer nur abtippt, was an der Wandtafel steht, lernt SQL ungefähr so gut wie Velofahren aus einem Buch.
Was Datebänkli nicht tut: Es korrigiert nichts. Es gibt keine Punkte, kein grünes Häkchen und keine Musterlösung. Ob deine Abfrage die richtige Antwort liefert, entscheidest du — indem du dir das Ergebnis anschaust — und danach deine Lehrperson.
Zettel raus. Drei Zeilen, und du bist drin.
Auf deinem Zettel stehen die Adresse, ein Benutzername und ein Passwort. Der Benutzername ist keine E-Mail-Adresse, sondern etwas wie u_i3a_buehler_nino: u für Lernende, dann das Kürzel deiner Klasse, dann dein Name. Alles klein, mit Unterstrichen. Das Passwort sind drei Wörter und eine Zahl mit Bindestrichen dazwischen — es ist so gebaut, dass man es vorlesen kann.
Das Passwort steht nirgendwo gespeichert, auch nicht bei deiner Lehrperson. Weg ist weg. Verlierst du den Zettel, ist das kein Drama — deine Lehrperson stellt dir in zehn Sekunden einen neuen aus —, aber deine bisherige Arbeit bleibt dabei erhalten, und du solltest es nicht jede Woche brauchen. Fotografier ihn, wenn du weisst, dass du ihn verlierst.
Ein eigenes Passwort setzen kannst du, musst du aber nicht: Passwort ändern steht auf der Übersicht unter deinem Namen. Der Zettel gilt dann nicht mehr — merk es dir also wirklich, bevor du klickst.
Angemeldet bleibst du 12 Stunden, und die Uhr beginnt bei jedem Klick von vorn. Ein Schultag ist damit abgedeckt, eine Nacht nicht: Am nächsten Morgen meldest du dich neu an. Wenn du an einem Schulcomputer arbeitest, klick am Ende der Lektion oben rechts auf Abmelden — sonst sitzt die nächste Klasse in deiner Datenbank.
Vertippst du dich zehnmal beim Passwort, macht die App eine Viertelstunde Pause mit dir. Bei fünf Versuchen passiert nichts; das ist normal und dafür eingerechnet.
Es gibt genau eine Seite, auf der gearbeitet wird: Demo-Tabellen.
Sie ist in drei Teile geteilt. Links die Liste deiner Tabellen. Oben rechts das Feld, in das du SQL schreibst. Unten rechts das Ergebnis. Mehr gibt es nicht, und das ist Absicht.
Zuoberst steht dein eigener Bereich — er heisst gleich wie dein Benutzername. Darunter demo: acht Beispieltabellen mit Schweizer Daten (Kantone, Gemeinden, Noten, Bestellungen …), die allen gehören. Lesen darf sie jede, ändern niemand.
Ein Klick auf einen Tabellennamen schreibt dir eine Abfrage und führt sie gleich aus (SELECT * FROM … LIMIT 50). Das ist der schnellste Weg zur Frage «was steht da überhaupt drin», und du brauchst dafür nichts zu tippen.
Unter dem Baum steht, wie viel Speicherplatz du brauchst — du hast 50 MB. In einer normalen Lektion kommst du dort nicht an, siehe Abschnitt 8.
Auf jeder Seite dieselbe, immer an derselben Stelle: Übersicht, Demo-Tabellen und Übungen links, rechts die Sprache (Deutsch oder Englisch), der Schalter für helles oder dunkles Design, das ? für dieses Handbuch und ganz rechts Abmelden. Sprache und Design gelten für dein Konto, nicht für den Computer — sie kommen also mit, wenn du dich morgen woanders anmeldest.
SQL-Schlüsselwörter bleiben in beiden Sprachen englisch. SELECT heisst überall SELECT; das ist keine Übersetzungslücke, sondern die Sprache selbst.
Ausführen, oder schneller: Strg + ↵, auf dem Mac ⌘ + ↵. Daneben steht Abbrechen — für den Moment, in dem eine Abfrage länger läuft, als dir lieb ist. Rechts siehst du, wie viele Anweisungen gelaufen sind und wie lange es gedauert hat.
Das Eingabefeld färbt SQL ein und schlägt dir Tabellen- und Spaltennamen vor, während du tippst. Vorgeschlagen wird nur, was du auch wirklich lesen darfst.
Damit auf dem Bildschirm etwas passiert, bevor die Theorie kommt.
Dein eigener Bereich ist am Anfang leer — ein leerer Bildschirm ist ein schlechter Start. Fang deshalb bei demo an. Klick links auf kantone, und du hast dein erstes Ergebnis, ohne eine Taste gedrückt zu haben.
Danach schreib selbst etwas:
Zwei Dinge, die dir hier begegnen und später ständig vorkommen:
kantone genügt: gesucht wird zuerst in deinem eigenen Bereich, dann in demo und tonspur. Du darfst den Bereich trotzdem hinschreiben — demo.kantone heisst «die Tabelle kantone im Bereich demo» — und musst es dann, wenn zwei Bereiche denselben Tabellennamen haben und du den hinteren meinst. Heisst deine eigene Tabelle auch kantone, bekommst du deine.Führst du fünf Anweisungen zusammen aus und die vierte schlägt fehl, werden auch die drei davor wieder rückgängig gemacht. Entweder alle oder keine. Das ist kein Ärgernis, sondern der Grund, weshalb es Transaktionen gibt — und du siehst es hier zum ersten Mal von selbst.
Neben demo findest du im Baum einen zweiten mitgelieferten Bereich: tonspur, mit Songs, Alben, Playlists und über 77 000 abgespielten Titeln. Er funktioniert genau gleich — SELECT * FROM song; — ist aber gross genug, dass sich damit richtig rechnen lässt. Lesen darfst du beide, ändern keinen von beiden.
Angezeigt werden höchstens 1000 Zeilen. Sind es mehr, steht es über der Tabelle; gelaufen ist die Abfrage trotzdem vollständig.
Und er kommt. Ungefähr alle zwei Minuten, bei allen.
Eine rote Meldung heisst nicht, dass du etwas falsch machst — sie heisst, dass der Server dich nicht verstanden hat und dir jetzt genau sagt, woran es lag. Fehlermeldungen zu lesen ist ein Teil dessen, was man hier lernt, und ehrlich gesagt der nützlichste.
Du bekommst drei Dinge übereinander:
kioskumsat statt kioskumsatz geschrieben, dann rät sie das nicht: Sie vergleicht mit den Tabellen, die du tatsächlich hast. Und wenn sie nichts Sinnvolles weiss, sagt sie lieber nichts, als etwas Falsches vorzuschlagen.42P01) ist offiziell und international; danach kann man suchen.Die häufigsten vier, damit du sie wiedererkennst:
| Was du siehst | Was los ist |
|---|---|
| relation … does not exist | Die Tabelle gibt es nicht. Tippfehler, oder sie liegt in einem anderen Bereich und der Teil vor dem Punkt fehlt. |
| column … does not exist | Die Spalte gibt es nicht. Schau links im Baum nach, wie sie wirklich heisst. |
| syntax error at or near … | Ein Wort steht an einer Stelle, an der SQL keines erwartet. Meist ein fehlendes Komma, ein fehlendes Semikolon — oder WEHRE statt WHERE. |
| must appear in the GROUP BY clause | Du mischst eine gruppierte Spalte mit einer ungruppierten. Jede Spalte, die nicht in einer Funktion wie sum() steckt, muss ins GROUP BY. |
Hängt eine Abfrage, drück Abbrechen. Tust du es nicht, stoppt der Server sie nach etwa zwanzig Sekunden selbst. Kaputt geht dabei nichts. Meist steckt ein Verbund ohne Bedingung dahinter — zwei Tabellen im FROM, aber kein JOIN … ON, und schon kombiniert die Datenbank jede Zeile mit jeder.
Dein Bereich ist leer, bis du etwas hineinstellst.
Ganz normales SQL, ohne Bereichsangabe — es landet automatisch bei dir:
Oben auf der Seite: CSV importieren. Du wählst eine Datei, die App liest sie, rät für jede Spalte einen Datentyp und zeigt dir eine Vorschau — bevor etwas entsteht. Erst Importieren legt die Tabelle an, danach steht sie links im Baum.
Zwei Stellen, an denen es fast immer klemmt:
0042 gehört als text in die Datenbank und nicht als Zahl, sonst wird daraus 42 und die führende Null ist weg. Die Faustregel: Zahl nur, wenn du damit auch rechnen willst. Solche Entscheidungen sind der eigentliche Inhalt dieses Dialogs.Erlaubt sind 10 MB und 100 000 Zeilen pro Datei. Datumsangaben wie 31.12.2025 und Zahlen wie 1'234.50 versteht die App; 03/04/2025 lässt sie absichtlich als Text stehen, weil daraus nicht hervorgeht, ob der 3. April oder der 4. März gemeint ist.
DROP TABLE lieblingsfilme; wirft eine Tabelle weg. Willst du ganz von vorne anfangen, gibt es oben Datenbank zurücksetzen: Das löscht alle deine Tabellen auf einmal und fragt vorher nach. Betroffen ist immer nur dein eigener Bereich.
Dein Bereich ist ein Arbeitsplatz, kein Archiv. Gelöschtes lässt sich nicht wiederherstellen — auch nicht von deiner Lehrperson. Wenn du etwas behalten willst, kopier die CREATE TABLE- und INSERT-Befehle in ein Dokument. Das ist übrigens die ehrlichste Version der Lektion «wozu Backups gut sind».
Reiter Übungen. Leer, solange deine Lehrperson keine verteilt hat.
Eine Übung ist ein Satz Tabellen mit einer Aufgabenstellung daneben — und du bekommst eine eigene Kopie davon. Was du darin änderst, änderst du nur bei dir. Deine Klassenkameradin sieht davon nichts.
Bearbeiten bringt dich in den Editor. Über dem Eingabefeld erscheint ein Balken mit dem Titel der Übung und drei Schaltflächen:
Über Eigene Datenbank kommst du wieder in deinen normalen Bereich zurück.
Du kannst so oft abgeben, wie du willst — es wird nichts überschrieben, und es zählt nicht gegen dich. Deine Lehrperson sieht alle Versuche. Gib also lieber früh etwas Halbfertiges ab, als am Schluss gar nichts. Unter Meine Abgaben im Reiter Übungen siehst du selbst, was von dir angekommen ist, und kannst es herunterladen.
Ein Detail, das sonst verwirrt: Solange du in einer Übung arbeitest, meint SELECT * FROM kunden; die Tabelle der Übung — nicht eine gleichnamige aus deiner eigenen Datenbank. Im Baum links steht die Übung als eigener Eintrag mit ihrem Titel.
Lässt sich eine Übung nicht öffnen oder fehlt eine Tabelle darin, ist das nicht dein Fehler. Sag es deiner Lehrperson — sie kann es beheben, du nicht.
Kurz, damit du nicht raten musst.
| Grenze | Wert | Was das heisst |
|---|---|---|
| Dein Speicher | 50 MB | Voll? Dann kannst du weiterhin lesen, aber nichts mehr schreiben. Platz schafft DROP TABLE oder TRUNCATE — DELETE nicht: Die Zeilen sind weg, der Platz bleibt belegt. |
| Dauer einer Abfrage | ca. 20 Sekunden | Danach wird sie gestoppt. Reicht für alles Sinnvolle und beendet den versehentlichen Riesen-Verbund von selbst. |
| Angezeigte Zeilen | 1000 | Darüber steht, wie viele es insgesamt wären. |
| CSV-Import | 10 MB / 100 000 Zeilen | Grösseres wird abgelehnt, bevor etwas entsteht. |
demo darfst du lesen, aber nicht ändern. Der Versuch, dort die eigene Note zu korrigieren, scheitert zuverlässig. Probier es ruhig aus; die Fehlermeldung ist lehrreicher als dieser Satz.Sie kann sehen, welche Befehle du abgeschickt hast, welche davon Fehler ergeben haben, welche Tabellen du angelegt hast, und sie darf deine Tabellen lesen. Ändern kann sie darin nichts.
Was sie nicht sieht: deinen Bildschirm, deine Tastenanschläge, irgendetwas ausserhalb von Datebänkli. Nur das, was du tatsächlich an die Datenbank geschickt hast. Und der praktische Teil davon: Wenn etwas nicht funktioniert, muss sie dir nicht glauben — sie kann nachschauen, und das geht schneller als jede Erklärung.
Falls du über den Knopf Als Schüler:in auf der Anmeldeseite hereingekommen bist statt über einen Zettel: Das ist ein Zugang zum Ausprobieren. Nach 30 Minuten ist Schluss, und danach wird alles gelöscht, was du in dieser halben Stunde gemacht hast. Nimm nichts hinein, was du behalten willst.
Der Reihe nach: Benutzername ganz klein und mit Unterstrichen? Passwort mit Bindestrichen und ohne Leerzeichen — und ohne das Leerzeichen, das die Autokorrektur am Schluss anhängt? Steckt vielleicht noch der Zettel deiner Sitznachbarin in deiner Hand? Wenn alles stimmt und es trotzdem nicht geht, sag es deiner Lehrperson; sie stellt dir einen neuen Zettel aus.
Deine Lehrperson stellt dir einen neuen aus, das dauert zehn Sekunden. Deine Tabellen bleiben dabei, wo sie sind — nur das Passwort ist ein anderes.
Abbrechen daneben stoppt sie, sonst der Server nach etwa zwanzig Sekunden. Es geht dabei nichts kaputt und nichts verloren. Schau danach, ob im FROM zwei Tabellen stehen, aber kein JOIN … ON dazwischen.
Dann sind deine 50 MB voll — unter dem Tabellenbaum links steht es. Lesen geht weiter, schreiben nicht. Wirf mit DROP TABLE weg, was du nicht mehr brauchst, oder setz mit Datenbank zurücksetzen alles auf null. DELETE hilft hier nicht.
Passiert, ist erlaubt, und niemand sonst ist betroffen. Wiederherstellen lässt es sich nicht. Fang neu an — beim zweiten Mal bist du dreimal so schnell, und das ist keine Floskel.
Deine eigenen Tabellen, demo und tonspur findet die Datenbank ohne Punkt. Alles andere nicht: die Tabelle einer Übung, die gerade nicht offen ist, zum Beispiel. Dann schreib den Bereich mit Punkt davor — der Name steht links im Baum über der Tabelle. Und achte darauf, ob du gerade in einer Übung bist: dort meinen Namen ohne Punkt zuerst die Tabellen der Übung.
Nein. Nicht «du solltest nicht», sondern: PostgreSQL lässt es nicht zu. Du siehst höchstens, dass es andere Bereiche gibt — Inhalte nie.
Ja. Es ist dieselbe Adresse und derselbe Zettel, und deine Tabellen liegen auf dem Server, nicht auf dem Schulcomputer. Ein Browser genügt; installieren musst du nichts.
Oben rechts der Schalter DE / EN. Die Einstellung gehört zu deinem Konto und kommt aufs nächste Gerät mit. SQL selbst bleibt so oder so englisch.