MySQL-und-phpMyAdmin-Lab mit Beispieldatenbank eines Shops zum Üben von SQL

Dieses Lab gibt jeder lernenden Person einen eigenen MySQL-Server und ein eigenes phpMyAdmin, bereits angemeldet. Dieselben Tabellen lassen sich so mit SQL im Terminal ändern und im Browser ansehen. Es beginnt mit einer Beispieldatenbank zum Üben, shop: die Kunden, Produkte, Bestellungen und Bewertungen eines kleinen Onlineshops, einige Hundert Zeilen in acht Tabellen.

Was die Lernenden lernen

SQL vom ersten SELECT über Joins und Gruppierung bis zu einem LEFT JOIN, der Zeilen ohne Entsprechung findet, Self-Joins, Unterabfragen, Views und Transaktionen mit ROLLBACK, an Daten, die so geschrieben sind, dass es etwas zu finden gibt: Kunden, die nie bestellt haben, Produkte, die nie verkauft wurden, und fehlende Werte. Der Designer von phpMyAdmin zeichnet, wie die Tabellen zusammenhängen.

Über Abfragen hinaus erkennen die Lernenden, wer sie in einer Datenbank sind: Das Konto student besitzt shop und jede Datenbank, deren Name mit student_ beginnt. CREATE DATABASE student_notes funktioniert also, und CREATE DATABASE other wird abgelehnt, SHOW GRANTS sagt warum. Sie sichern die Datenbank mit mariadb-dump und stellen sie wieder her.

Die Datenbank shop

Acht Tabellen: categories, suppliers, products, customers, employees, orders, order_items und reviews, durchgehend mit Schlüsseln und Fremdschlüsseln. Die Übungen in der README des Repositorys reichen von den Produkten über fünfzig Pfund, das teuerste zuerst, über den Umsatz je Kategorie und die Kunden, die nie bestellt haben, bis zu den Bestellungen pro Monat für ein Diagramm.

Im Browser ausführen

Der Datenbankbenutzer ist student mit dem Passwort student.

  1. Die Container-Seite öffnen. Öffnen Sie in der Leiste „Entwickeln“ und wählen Sie „Einen Container ausführen“. Die Seite steht jedem offen, und das Git-Lab und das SQL-Lab starten ohne Konto. Alle anderen Labs brauchen ein kostenloses Konto: Erstellen Sie eines, melden Sie sich an und klicken Sie dann auf „Starten“.
  2. Das Lab finden. Die Karte „Beispiel-Labs“ listet alle Beispiele auf. Suchen Sie MySQL mit phpMyAdmin.
  3. Auf „Starten“ klicken. „Starten“ führt das Lab unverändert mit einem Klick aus. „Zuerst die Datei bearbeiten“ öffnet die Compose-Datei, damit Sie sie vor dem Start ändern können.
  4. Öffnen. Klicken Sie auf der Seite des Labs unter „In Ihrem Browser“ auf „phpMyAdmin“: Es öffnet sich angemeldet, und shop steht links. Weisen Sie im Terminal den Client einmalig an, das eigene Zertifikat des Servers zu akzeptieren. Danach öffnet mariadb -h db -u student -pstudent shop eine Sitzung. Die README nennt die genauen Zeilen.

Der Code auf GitHub

Eine Compose-Datei, in der die Beispieldaten ausgeschrieben sind, bei jedem Push geprüft von einem Test, der das Lab so startet, wie die Plattform es ausführt. Erstellen Sie einen Fork, um die Daten zu ändern.

Eine Grundlagenlektion zu diesem Lab

SQL Basics und SQL Basics 2 sind Lektionen, die in dieses Lab eingearbeitet sind. Jeder Schritt ist erklärt und hat eine Schaltfläche „Ausführen“, die einen SQL-Befehl in das Terminal der lernenden Person tippt. SQL Basics fügt der Datenbank shop eine neue Tabelle hinzu und fügt Zeilen ein, wählt sie aus, verknüpft sie, ändert und löscht sie. SQL Basics 2 stellt Fragen an viele Zeilen auf einmal: zählen, gruppieren und die Kunden finden, die nie bestellt haben.

Ein kostenloses persönliches Konto erhält sie im Modul „Basics“, das auf der Startseite liegt. Jede Einrichtung kann sie aus dem Ordner „Basics“ der Bibliothek kopieren, und eine neue Einrichtung startet mit ihnen in einem Modul namens Database (Sample). Sie sind bewusst klein: Sie zeigen Lehrkräften, was eine in ein Lab eingearbeitete Lektion ist, und das Lab erledigt den Rest. Kopieren Sie eine in ein eigenes Modul, um sie zu ändern.

Als Aufgabe stellen

Geben Sie einer Klasse die Übungen aus der README, oder schreiben Sie eigene gegen shop.

  1. Das Lab anlegen. Fügen Sie in Ihrem Modul eine Aufgabe hinzu, wählen Sie die Karte „Container-Lab“ und dann „In einem GitHub-Repository“. Geben Sie https://github.com/mitsurutech/lab-mysql-phpmyadmin mit dem Branch main an. Die Compose-Datei ist standardmäßig compose.yaml. Erstellen Sie zuerst einen Fork des Repositorys, wenn Sie es ändern möchten.
  2. Veröffentlichen und ausprobieren. „Veröffentlichen“ legt den Commit fest, den Ihnen die Seite angezeigt hat. Eine spätere Änderung im Repository verändert also kein Lab, das Sie bereits zugewiesen haben. Starten Sie zuerst Ihre eigene Kopie.
  3. Zuweisen. Weisen Sie es wie jede Aufgabe zu, auf Wunsch mit Fälligkeitsdatum, und schreiben Sie in die Aufgabe, was zu tun ist und was abgegeben werden soll.
  4. Abgaben bewerten. Öffnen Sie die Kopie einer lernenden Person und die abgegebene Arbeit, bewerten Sie sie und geben Sie sie mit einer Begründung zur Überarbeitung zurück, wenn mehr nötig ist.

Häufige Fragen

Können die Lernenden eigene Datenbanken anlegen?
Ja, alle, deren Name mit student_ beginnt. Das Konto student besitzt shop und diese und sonst nichts. root mit dem Passwort root ist da, um den Unterschied zu zeigen.
Bleiben die Daten erhalten?
Ja. MySQL hält seine Dateien im benannten Volume mysqldata, das die Plattform speichert, sodass eine Tabelle, die eine lernende Person angelegt hat, in der nächsten Sitzung noch da ist. Das Lab ist so dimensioniert, dass es innerhalb der Menge bleibt, die ein Lab speichern darf.
Was enthält die Beispieldatenbank des Shops?
Acht Tabellen für einen kleinen Onlineshop, durchgehend mit Schlüsseln und Fremdschlüsseln: categories, suppliers, products, customers, employees, orders, order_items und reviews, insgesamt einige Hundert Zeilen. Die README des Repositorys enthält dreizehn SQL-Übungen dazu, und die Daten sind so geschrieben, dass es etwas zu finden gibt, etwa Kunden, die nie bestellt haben.