Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

SQL-Grundlagen 2

Die ganze Lektion steht hier zum Lesen. Erstellen Sie ein kostenloses Konto, um sie in einem Live-Lab auszuführen.

Container-Lab6 Min. Lesezeit6 Befehle

Was du machst

Eine Datenbank beantwortet gut Fragen zu vielen Zeilen auf einmal: wie viele, wie viele von jeder Sorte, welche haben keine. In dieser Lektion stellst du der Shop-Datenbank vier solche Fragen, mit COUNT, GROUP BY, JOIN und LEFT JOIN. Du änderst nichts.

Bevor du anfängst

Notiz

Drücke oben in der Leiste dieser Lektion auf Lab starten und warte, bis dort steht, dass es läuft. Der erste Start dauert etwas länger, weil dabei die Shop-Datenbank erstellt wird. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal deines Labs, einen nach dem anderen in derselben Sitzung. Willst du zuschauen oder eigene Befehle tippen, drücke in der Leiste auf Terminal öffnen (neuer Tab).

1. Sag dem Terminal, wie es sich anmeldet

Es sind dieselben zwei Befehle wie in SQL-Grundlagen. Der erste lässt den Client das eigene Zertifikat von MySQL annehmen. Der zweite macht den Kurznamen sql, mit dem du dich an der Datenbank shop anmeldest und eine Anweisung ausführst. Führe sie noch einmal aus, wenn das Terminal neu gestartet wurde. Das schadet nicht.

Befehl
printf '[client]\nssl-verify-server-cert=0\n' > ~/.my.cnf

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
alias sql='mariadb -h db -u student -pstudent shop -t -e'

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

2. Zähle Zeilen

COUNT(*) zählt Zeilen. AS customers gibt der Spalte in der Antwort einen Namen. Der Shop hat 40 Kundinnen und Kunden.

Befehl
sql "SELECT COUNT(*) AS customers FROM customers"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

3. Zähle jede Sorte

GROUP BY country macht für jedes Land eine Zeile in der Antwort, und COUNT(*) zählt die Kundschaft in jedem Land. ORDER BY customers DESC stellt die größte Zahl nach oben. Das Vereinigte Königreich hat 14.

Befehl
sql "SELECT country, COUNT(*) AS customers FROM customers GROUP BY country ORDER BY customers DESC LIMIT 3"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

4. Zähle über zwei Tabellen

Produkte kennen ihre Kategorie nur als Zahl. JOIN setzt den Namen der Kategorie daneben, und dann kannst du die Produkte in jeder Kategorie zählen. Books, Kitchen und Outdoors haben je fünf. Zwei Produkte haben keine Kategorie, deshalb lässt ein JOIN sie weg.

Befehl
sql "SELECT categories.name, COUNT(*) AS products FROM products JOIN categories ON products.category_id = categories.id GROUP BY categories.name ORDER BY products DESC LIMIT 4"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

5. Finde, was fehlt

Ein einfacher JOIN behält nur Zeilen, die passen. LEFT JOIN behält jede Kundin und jeden Kunden und setzt NULL, wo es keine passende Bestellung gibt. WHERE orders.id IS NULL behält nur diese: die vier Personen, die nie bestellt haben.

Befehl
sql "SELECT customers.first_name, customers.country FROM customers LEFT JOIN orders ON orders.customer_id = customers.id WHERE orders.id IS NULL"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Für Lehrkräfte

Tipp

Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab bearbeitet wird: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Diese Lektion nutzt dasselbe MySQL-Lab wie SQL-Grundlagen, die Kurzform sql und der Verlauf der Lernenden bleiben also erhalten. Die Shop-Datenbank wurde so gebaut, dass es etwas zu finden gibt: Kundschaft, die nie bestellt hat, Produkte, die nie verkauft wurden, und fehlende Werte. Kopieren Sie die Lektion in Ihr eigenes Modul und ändern Sie sie, oder bauen Sie mit dem Menü Lab im Lektionseditor eine neue.

Mehr in diesem Lab

Über dieses Lab und seinen Quellcode: MySQL-und-phpMyAdmin-Lab mit Beispieldatenbank eines Shops zum Üben von SQL

Sie unterrichten eine Klasse? Weisen Sie diese Lektionen Ihren Lernenden zu, mit Bewertung und einem Lab für jede lernende Person.