Stefan Kierek – RADONART

  • Home
  • Niederrhein
  • Musik&Art
  • Surreal
  • Architecture
  • Luftaufnahmen
  • Portrait
  • Wettbewerb
  • Meine Kalender
  • Bilder kaufen
  • Schule
    • Informatik 5
      • Avatare im Internet
    • Informatik 10
      • SQL
        • 1. SQL: Einführung
        • 2. SQL: Daten verwalten
        • 3. SQL: Quiz
        • 4. SQL: JOIN und Aggregation

Archiv der Kategorie: SQL

4. SQL: JOIN und Aggregation

Geschrieben am Februar 17, 2026 Von Kierek
SQL – Ihr werdet Lehrkräfte!

🎓 Ihr werdet Lehrkräfte!

SQL-Aufgaben selbst erstellen und anderen erklären

📚 JOIN 📊 Aggregation ✏️ Eigene Aufgaben 📄 PDF-Export
🤖
SQL Lerncoach – Dein KI-Tutor für SQL! Du hast eine Frage zu SQL? Frag den Lerncoach – er erklärt dir alles auf Deutsch. Klick hier! →
🗄️
Unsere Datenbank (Zur Erinnerung) ▾

Wir nutzen weiterhin unsere Online-Shop-Datenbank aus den letzten Stunden. Öffne SQLite Online und lade die Datenbank.

🔗 SQLite Online öffnen
CustomersCustomerID, CustomerName, City, Country …
OrdersOrderID, CustomerID, EmployeeID, OrderDate …
OrderDetailsOrderDetailID, OrderID, ProductID, Quantity
ProductsProductID, ProductName, Price …
EmployeesEmployeeID, LastName, FirstName …
CategoriesCategoryID, CategoryName …
💡 TippWenn du nicht mehr weißt, welche Spalten in einer Tabelle sind, klicke einfach im linken Menü auf den Tabellennamen.
1
Neuer Befehl: JOIN – Tabellen verbinden ▾
🔗 Was macht JOIN? Mit JOIN kannst du Daten aus zwei oder mehr Tabellen gleichzeitig abfragen und miteinander verbinden. Das ist nötig, wenn die gesuchten Informationen auf verschiedene Tabellen verteilt sind.

Beispiel: In der Tabelle Orders steht nur die CustomerID, nicht der Name. Mit JOIN holen wir den Namen aus Customers.

Orders (Auszug)Customers (Auszug)
OrderIDCustomerIDCustomerIDCustomerName
102489090Vins et alcools Chevalier
102498181Toms Spezialitäten

Die CustomerID ist der gemeinsame Schlüssel – damit verbinden wir die beiden Tabellen.

📝 Syntax von JOIN – Zeile für Zeile erklärt:
SELECT  Customers.CustomerName,  Orders.OrderID,  Orders.OrderDate
FROM Orders
JOIN Customers  ON  Orders.CustomerID =  Customers.CustomerID;
Code-TeilWas bedeutet das?
SELECT Customers.CustomerName, ... Welche Spalten soll das Ergebnis zeigen? Da wir aus zwei Tabellen abfragen, schreiben wir Tabellenname.Spaltenname, damit SQL weiß, woher die Spalte kommt.
FROM Orders Die erste (Haupt-)Tabelle, aus der wir starten. Hier beginnt SQL zu lesen.
JOIN Customers Die zweite Tabelle, die wir dazunehmen und mit der ersten verbinden wollen.
ON Orders.CustomerID = Customers.CustomerID Die Verbindungsbedingung: Beide Tabellen teilen sich die CustomerID. SQL sucht Zeilen, bei denen diese ID übereinstimmt, und fügt sie zusammen.
🧩 Merkhilfe: Stell dir JOIN wie einen Reißverschluss vor. FROM ist die linke Seite, JOIN die rechte – und ON ist der Zahn, der beide zusammenhält.

🎯 Noch ein Beispiel: Welcher Mitarbeiter hat welche Bestellung bearbeitet?

SELECT Employees.LastName, Employees.FirstName, Orders.OrderID, Orders.OrderDate
FROM Orders
JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderDate DESC
LIMIT 10;
— Zeige die 10 neuesten Bestellungen mit dem Namen des Mitarbeiters
⚠️ Häufiger Fehler: Wenn eine Spalte in beiden Tabellen vorkommt (z. B. CustomerID), musst du immer angeben, von welcher Tabelle sie stammt: Orders.CustomerID
🧪 Probiere selbst aus:
Zeige den Produktnamen (Products.ProductName) und die bestellte Menge (OrderDetails.Quantity) für alle Bestelldetails an.
Tipp: Verbinde OrderDetails mit Products über ProductID.
2
Neuer Befehl: Aggregation – Daten zusammenfassen ▾
📊 Was ist Aggregation? Mit Aggregationsfunktionen fasst du viele Daten zu einem Ergebnis zusammen – z. B. „Wie viele Kunden gibt es?“ oder „Was ist der teuerste Preis?“.
Die wichtigsten Aggregationsfunktionen:
FunktionBedeutungBeispiel
COUNT(*)Anzahl der Zeilen zählenWie viele Bestellungen?
SUM(Spalte)Summe berechnenGesamtmenge aller Bestellungen
AVG(Spalte)Durchschnitt berechnenDurchschnittspreis der Produkte
MAX(Spalte)Größten Wert findenTeuerster Preis
MIN(Spalte)Kleinsten Wert findenGünstigster Preis

📝 Beispiel 1: Wie viele Kunden gibt es insgesamt? – Zeile für Zeile erklärt:

SELECT  COUNT(*)  AS  AnzahlKunden
FROM Customers;
Code-TeilWas bedeutet das?
COUNT(*) Zählt alle Zeilen in der Tabelle. Das * steht für „alle“ – egal was in den Spalten steht.
AS AnzahlKunden Gibt der Ergebnisspalte einen eigenen Namen (Alias). Statt einer unleserlichen Spaltenüberschrift steht dann „AnzahlKunden“ im Ergebnis.
FROM Customers Sagt SQL, in welcher Tabelle gezählt werden soll.

📝 Beispiel 2: Mit GROUP BY – Pro Gruppe zählen:

Wie viele Kunden gibt es aus jedem Land?

SELECT  Country,  COUNT(*)  AS  Anzahl
FROM Customers
GROUP BY Country
ORDER BY Anzahl DESC;
Code-TeilWas bedeutet das?
SELECT Country, COUNT(*) AS Anzahl Wir wollen den Ländernamen sehen und dazu, wie oft er vorkommt (gezählt mit COUNT).
FROM Customers Wir schauen in der Tabelle Customers nach.
GROUP BY Country SQL gruppiert alle Zeilen mit demselben Land zusammen – danach zählt COUNT pro Gruppe. Wichtig: Jede Spalte im SELECT, die keine Aggregatfunktion ist, muss hier auftauchen!
ORDER BY Anzahl DESC Sortiert das Ergebnis absteigend (DESC = größte Zahl zuerst). So sehen wir zuerst die Länder mit den meisten Kunden.
💡 Reihenfolge merken: SQL-Befehle folgen immer dieser Reihenfolge: SELECT → FROM → JOIN → WHERE → GROUP BY → ORDER BY → LIMIT. Du brauchst nicht alle – aber die Reihenfolge muss stimmen!

🎯 Großes Beispiel: JOIN + Aggregation kombiniert – Zeile für Zeile erklärt

Welcher Kunde hat die meisten Bestellungen?

SELECT  Customers.CustomerName,  COUNT(Orders.OrderID)  AS  AnzahlBestellungen
FROM Orders
JOIN Customers  ON  Orders.CustomerID =  Customers.CustomerID
GROUP BY Customers.CustomerName
ORDER BY AnzahlBestellungen DESC
LIMIT 5;
Code-TeilWas bedeutet das?
SELECT Customers.CustomerName, COUNT(Orders.OrderID) AS AnzahlBestellungen Zeige den Kundennamen und zähle, wie viele OrderID-Einträge es pro Kunde gibt. Das Ergebnis heißt „AnzahlBestellungen“.
FROM Orders Startpunkt ist die Tabelle Orders – sie enthält alle Bestellungen.
JOIN Customers ON Orders.CustomerID = Customers.CustomerID Verbinde Orders mit Customers: Zu jeder Bestellung holen wir den passenden Kundennamen.
GROUP BY Customers.CustomerName Gruppiere alle Zeilen pro Kunde. Danach zählt COUNT, wie viele Bestellungen jeder Kunde hat.
ORDER BY AnzahlBestellungen DESC Sortiere so, dass der Kunde mit den meisten Bestellungen ganz oben steht.
LIMIT 5 Zeige nur die Top 5 Kunden – nicht die ganze Liste.
🧪 Probiere selbst aus:
Was ist der durchschnittliche Preis (Price) aller Produkte in der Tabelle Products?
Tipp: Nutze AVG() und nenne die Spalte DurchschnittPreis.
3
Eure Aufgabe: Werdet Lehrkräfte! ▾
🎯 Was sollt ihr tun? Ihr seid heute die Lehrkräfte! Erfindet 3 eigene SELECT-Aufgaben mit steigendem Schwierigkeitsgrad. Eure Aufgaben werden später von euren Mitschülerinnen und Mitschülern gelöst.
Stufe 1 – Einfach Einfache Abfrage

Nutzt SELECT mit einer WHERE-Bedingung.
Beispiel: „Zeige alle Kunden aus Berlin an.“

Stufe 2 – Mittel Mehrere Bedingungen oder Sortierung

Kombiniert WHERE, ORDER BY oder LIMIT.
Beispiel: „Liste alle Bestellungen von 2023 auf, sortiert nach Bestelldatum.“

Stufe 3 – Schwer JOIN oder Aggregation

Nutzt JOIN, GROUP BY und COUNT.
Beispiel: „Welcher Kunde hat die meisten Bestellungen? Zeige Name und Anzahl.“

✅ Wichtig für gute Aufgaben:
• Schreibt deutlich, welche Spalten ausgegeben werden sollen.
• Formuliert die Aufgabe klar und verständlich (stellt euch vor, jemand kennt die Lösung nicht).
• Notiert auch eure eigene Musterlösung als SQL-Code.
4
Meine Aufgaben eingeben & als PDF herunterladen ▾

📋 Meine Angaben

Stufe 1 Meine einfache Aufgabe

Stufe 2 Meine mittlere Aufgabe

Stufe 3 Meine schwere Aufgabe

💬 Reflexion: Was habe ich gelernt?

💡 Das PDF enthält alle Erklärungen und deine eigenen Aufgaben. Du kannst es dann an deine Mitschüler:innen weitergeben.

📋 Vorschau: Meine Aufgaben

CC BY-NC-ND 4.0 – Dieses Material von Stefan Kierek ist lizenziert unter Creative Commons Namensnennung – Nicht kommerziell – Keine Bearbeitungen 4.0 International.

Datenbank: AppCamps (CC BY-SA) • SQLite Online • SQL Lerncoach

Veröffentlicht unter Informatik 10, SQL | Hinterlassen Sie einen Kommentar |

3. SQL: Quiz

Geschrieben am Februar 17, 2026 Von Kierek
SQL-Quiz: SELECT, INSERT, UPDATE, DELETE

🎯 SQL-Quiz

Teste dein Wissen zu SELECT, INSERT, UPDATE und DELETE

Hinweis: Beantworte alle Fragen und klicke am Ende auf „Auswerten“, um dein Ergebnis zu sehen!
📝 Teil A: Multiple Choice (6 Fragen)
1. Welcher SQL-Befehl wird verwendet, um Daten aus einer Tabelle abzufragen?
2. Was passiert, wenn du UPDATE ohne WHERE-Bedingung ausführst?
3. Wie werden Textwerte in SQL gekennzeichnet?
4. Mit welchem Befehl fügst du neue Daten in eine Tabelle ein?
5. Welche Aussage über den DELETE-Befehl ist richtig?
6. Was bedeutet das Sternchen (*) in: SELECT * FROM Customers;
🔍 Teil B: Fehlersuche – Finde den Fehler! (4 Aufgaben)
Aufgabe: Jeder SQL-Code enthält einen Fehler. Beschreibe den Fehler und wie du ihn korrigierst!
7. Fehlersuche: Neue Kundin eintragen
1INSERT INTO Customers (CustomerName, City, Country) 2VALUES (Maria Schmidt, ‚Berlin‘, ‚Germany‘);
Tipp: Achte auf die Anführungszeichen! Wie müssen Textwerte in SQL geschrieben werden?
8. Fehlersuche: Preis aktualisieren
1UPDATE Products 2SET Price = 50;
Tipp: Was passiert bei UPDATE ohne WHERE? Welche Zeilen werden dann geändert?
9. Fehlersuche: Mitarbeiter löschen
1DELETE Employees 2WHERE EmployeeID = 5;
Tipp: Vergleiche mit der korrekten Syntax: DELETE FROM tabellenname WHERE ...
10. Fehlersuche: Bestelldatum ändern
1UPDATE Orders 2SET OrderDate = 2017-06-22 3WHERE OrderID = 10250;
Tipp: Datum ist kein Zahlenwert! Wie werden Datum-Werte in SQL geschrieben?
Veröffentlicht unter Informatik 10, Schule, SQL | Hinterlassen Sie einen Kommentar |

2. SQL: Daten verwalten

Geschrieben am Februar 17, 2026 Von Kierek
Veröffentlicht unter Informatik 10, SQL | Hinterlassen Sie einen Kommentar |

1. SQL: Einführung

Geschrieben am Februar 17, 2026 Von Kierek

Anbei ein Video, dass mit Hilfe von NotebookLM erstellt worden ist!

Veröffentlicht unter Informatik 10, SQL | Tags: SQL | Hinterlassen Sie einen Kommentar |

looking-up Crying-2 Ein-Leben-in-der-Matrix Übersicht Bilder Weg-in-eine-ungewisse-Zukunft Wie-eine-Spinne....... Licht-im-Wald-scaled Idylle-auf-dem-Land-scaled Ausfahrt-mit-Hund-scaled Waffen-einer-Frau

Schlagwörter

Ausstellung Bahnhof Baum Blumen Boeckelt Bottrop Demokratie DJI Drohne Duisburg Düsseldorf fineart Frankfurt Frieden Gedichte Geldern Gesellschaft Halde Haniel Haniel Herbst Herbst-Art Industrie Informatik Luftaufnahme Medienhafen Motion Blur Musik Niederrhein Oberhausen Ostsee painted Pflanzen Poesie Populismus Rika Ruhrgebiet See Sonnenuntergang SQL surreal Tiger&Turtle Toleranz tree Wettbewerb Zukunft

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentar-Feed
  • WordPress.org

Links

  • Home
  • Niederrhein
  • Musik&Art
  • Surreal
  • Architecture
  • Luftaufnahmen
  • Portrait
  • Wettbewerb
  • Meine Kalender
  • Bilder kaufen
  • Schule
    • Informatik 5
      • Avatare im Internet
    • Informatik 10
      • SQL
        • 1. SQL: Einführung
        • 2. SQL: Daten verwalten
        • 3. SQL: Quiz
        • 4. SQL: JOIN und Aggregation

Seiten

  • 3 Fragen zum Nachdenken – Binärcode
  • Algorithmus – Marmeladenbrötchen
  • Andere Quellen
  • Das Winkeralphabet
  • Distanzunterricht an der Gesamtschule Geldern
  • H5P
    • EVAS-Prinzip
  • Impressum
  • Lückentext zum Binärcode
  • Sample Page
  • Tool
  • Video und Quiz: Binärcode

Archiv

  • Februar 2026
  • Januar 2026
  • Juli 2025
  • Juni 2025
  • April 2025
  • März 2024
  • August 2023
  • März 2023
  • Dezember 2022
  • November 2022
  • Oktober 2021
  • September 2021
  • Januar 2021
  • Oktober 2020

Kategorien

  • Architecture (4)
  • Digiart (17)
    • Motion Blur (5)
    • Symmetry (2)
  • Drohne (2)
  • Gedichte (3)
  • Geldern (6)
  • Informatik 10 (4)
    • SQL (4)
  • Informatik 5 (1)
  • Kommentar (2)
  • Landschaft (10)
  • Literatur (2)
  • Luftaufnahmen (3)
  • Monochrome (1)
  • Musik (2)
  • Musik&Art (5)
  • Niederrhein (10)
  • Panorama (2)
  • Podcast (1)
  • Poesie (2)
  • Portrait (2)
  • RADONART (14)
  • Schule (2)
  • Surreal (5)
  • Uncategorized (2)
  • Wettbewerb (4)

WordPress

  • Anmelden
  • WordPress

CyberChimps WordPress Themes

© Stefan Kierek