SQL - Grundlagen
Mehr über SQL erfährst du auch hier: https://www.ibm.com/de-de/think/topics/structured-query-language Was ist SQL? SQL steht für Structured Query Language und ist die weltweit wichtigste Sprache, um mit Datenbanken zu kommunizieren. Mit ihr können aus riesigen Tabellenmengen gezielt Informationen gefiltert, Daten analysiert und komplexe Fragen effizient beantworten werden. Fast jede moderne App und Webseite nutzt SQL im Hintergrund, um ihre Daten zu verwalten.
Die Datenbankeinträge wurden mit Hilfe einer KI erstellt und sind nicht auf inhaltliche Korrektheit überprüft worden. Du wirst hier mit einer Datenbank arbeiten, die drei Tabellen enthält: land (Basisdaten), stadt (Städte der Welt) und wirtschaft (Daten zu Industrie, Landwirtschaft etc.).
Relationen
- land(land_id ,name, kontinent, flaeche_km2, bevoelkerung, bip_mrd_usd, bip_pro_kopf, entwicklungsstand, arbeitslosenquote)
- stadt(stadt_id, ↑land_id, name, einwohner, ist_hauptstadt, wirtschaftszentrum)
- wirtschaft(eintrag_id, ↑land_id, sektor, anteil_bip_proz, exporte_mrd)

Erste Schritte
SELECT ... FROM Der Blick in die Datenbank
Bevor wir spezielle Datensätze in der Datenbank suchen, müssen wir wissen, was da ist. SELECT bestimmt die Spalten (Attribute), FROM die Tabelle.
Mit * können alle Spalten ausgewählt werden:
SQL Befehle enden mit einem Semikolon und können mehrzeilig sein.
Training
- Zeige alle Spalten der Tabelle
landan. - Gib nur die Spalten
nameundeinwohneraus der Tabellestadtaus. - Zeige alle Sektoren an, die in der Tabelle
wirtschaftvorkommen. - Liste die Namen, die Fläche und die Bevölkerung aller Länder auf.
DISTINCT & LIMIT Ergebnismengen steuern
Manchmal gibt eine Abfrage zu viele oder doppelte Informationen zurück. Hier helfen zwei einfache Befehle, die Übersicht zu behalten:
Oft enthalten Spalten doppelte Einträge. Wenn du wissen willst, welche Kontinente vorkommen, möchtest du nicht 30-mal Europa sehen. DISTINCT filtert Duplikate heraus.
Wenn dich nur die ersten paar Zeilen interessieren (z. B. eine Top-Liste), begrenzt LIMIT die Ausgabe auf eine feste Anzahl.
Training
- Welche verschiedenen Entwicklungsstände (
entwicklungsstand) gibt es? Zeige sie ohne Duplikate an. - Liste alle unterschiedlichen Sektoren aus der Tabelle
wirtschaftauf. - Zeige die ersten 10 Einträge der Tabelle
stadtan. - Gib die Namen von 3 beliebigen Ländern aus der Tabelle
landaus.
WHERE Die gezielte Suche
Mit WHERE filtern wir die Zeilen nach bestimmten Bedingungen. Alle Länder der Datenbank die in Europa liegen, erhalten wir mit dem Befehl:
Wird mit einem String verglichen, muss dieser in einfachen Anführungszeichen stehen '...'. Es kann nicht nur auf Gleichheit = sondern auch auf < (kleiner), > (größer), <= (kleiner gleich), >= (größer gleich), != (ungleich)
Training
- Welche Länder haben mehr als 200 Millionen Einwohner?
- Zeige alle Städte, die Hauptstädte sind.
- Welche Länder haben eine Arbeitslosenquote von weniger als 3.0 %?
- Liste alle Länder auf, die nicht in
Asienliegen. - Finde alle Einträge in der Tabelle
wirtschaft, bei denen der Anteil am BIP größer als 50 % ist.
AND, OR, NOT Bedingungen kombinieren
Mit den logischen Operatoren AND, OR, NOT lassen sich mehrere Bedingungen kombinieren:
Training
- Welche Länder liegen in
EuropaUND haben einbip_pro_kopfüber 50.000? - Suche alle Städte, die entweder in Deutschland (
land_id = 1) oder in den USA (land_id = 2) liegen. - Welche Länder sind
SchwellenländerUND haben eine Fläche von über 1.000. 000 km²? - Zeige alle Wirtschaftseinträge , die
IndustrieoderRohstoffesind. - Finde Länder in
Afrika, die keineEntwicklungsländersind.
Datenanalyse und Auswertung
ORDER BY Ordnung schaffen
Daten werden standardmäßig unsortiert ausgegeben. ORDER BY sortiert die Daten. Die Länder können nach der Bevölkerung (größte zuerst) sortiert werden:
Standardmäßig (ohne DESC) wird aufsteigend sortiert. Es kann aber auch explizit mit ASC angegeben werden.
Training
- Sortiere die Länder nach ihrer Fläche (kleinste zuerst).
- Erstelle eine Rangliste der Länder nach ihrer arbeitslosenquote (höchste zuerst).
AS Rechnen
SQL kann wie ein Taschenrechner arbeiten. Mit AS gibst du der Ergebnisspalte einen Namen. Berechne wir die Bevölkerungsdichte (Einwohner pro km²) aller Länder und geben diese aus:
Training
- Berechne für alle Länder, wie viel BIP (mrd USD) pro 1 Million Einwohner zur Verfügung steht.
- Gib den Namen der Länder aus, aber nenne die Spalte in der Anzeige 'Staat'. Sortiere alphabetisch absteigend.
- Zeige den Namen der Städte und deren Einwohnerzahl in Millionen an (Einwohner / 1.000.000).
- Überprüfe, ob das gegeben pro Kopf BIP aller Länder korrekt ist (bezogen auf das gesamte BIP und die Bevölkerungszahl). Sortiere nach der Größe der Abweichung.
- Bilde das Verhältnis zwischen BIP pro Kopf und Arbeitslosenquote für alle Länder ab und sortiere absteigend. Was könnte dieser Wert aussagen.
LIKE Muster finden
Wenn du Namen nur teilweise kennst, hilft LIKE. Das Zeichen % dient als Platzhalter für beliebigen Text.
Training
- Welche Ländernamen enden auf 'ien' (z.B. Brasilien)?
- Suche alle Städte, die das Wort 'Stadt' im Namen haben.
- Finde alle Kontinente, die mit 'A' beginnen.
- Suche Länder, deren Name an der zweiten Stelle ein 'a' hat (Tipp:
_ist Platzhalter für genau einen Buchstaben).
Statistiken mit Aggregatfunktionen erstellen
Aggregatfunktionen fassen viele Zeilen zu einem einzigen Ergebniswert zusammen. Das ist perfekt für globale Statistiken:
COUNT(*): Zählt die Zeilen.SUM(spalte): Bildet die Summe.AVG(spalte): Berechnet den Durchschnitt.MAX(spalte),MIN(spalte): Findet den höchsten/niedrigsten Wert.
Wie groß ist die Gesamtbevölkerung aller in der Datenbank erfassten Länder?
Training
- Wie viele Länder sind insgesamt in der Datenbank erfasst?
- Berechne die durchschnittliche Arbeitslosenquote aller Länder.
- Wie hoch ist das Exportvolumen (
exporte_mrd) aller Sektoren in der Tabellewirtschaftzusammengerechnet? - Welche Stadt hat die meisten Einwohner?
- Kombiniere Filter und Aggregat: Wie viele Länder liegen in 'Europa'?
- Wie groß ist die Gesamtfläche aller Länder in 'Afrika'?
- Größtes pro Kopf BIP aller Entwicklungsländer?
- Kleinstes pro Kopf BIP aller Schwellenländer?
JOIN .. ON .. Tabellen verbinden
Bisher haben wir Tabellen einzeln abgefragt. Oft sind Informationen aber verteilt: Einwohner stehen in stadt, Kontinente in land. Mit einem JOIN schlagen wir eine Brücke zwischen ihnen, um kombinierte Listen zu erstellen.
Ein JOIN verknüpft Zeilen über einen gemeinsamen Wert, in unserer Datenbank über Werte der Spalte (Attribut) land_id (Primärschlüssel in land, Fremdschlüssel in stadt).
SELECT ...: Spalten wählen. Die Punkt-Notation (Tabelle.Spalte) verhindert Verwechslungen bei gleichen Namen (z.B.stadt.name).FROM stadt: Die Basis-Tabelle.JOIN land: Die Tabelle, die verbunden werden soll.ON stadt.land_id = land.land_id: Die Bedingung. SQL kombiniert nur Zeilen, deren Werte exakt übereinstimmen.
Training
- Liste alle Städte mit ihrem Namen und dem zugehörigen Kontinent auf.
- Zeige alle Wirtschaftseinträge (
sektor,exporte_mrd) zusammen mit dem jeweiligen Ländernamen an. - Welche Städte sind Hauptstädte? Gib den Stadtnamen und den
entwicklungsstanddes zugehörigen Landes aus. - Finde alle Sektoren
Tourismusund zeige den Ländernamen sowie dasbip_pro_kopfdieses Landes an. - Liste alle Städte in
Europaauf. Zeige den Stadtnamen und den Ländernamen.
JOINs mit Berechnungen und Aggregaten
JOINs lassen sich super mit Berechnung und Aggregaten verbinden.
Welchen Wert in Milliarden USD hat der Sektor Industrie in Deutschland? (BIP * BIP-Anteil des Sektors / 100)
Training
- Berechne für den Sektor Industrie in allen europäischen Ländern den Exportwert pro Kopf (Exporte des Sektors / Bevölkerung des Landes). Multipliziere das Ergebnis mit 1.000.000.000, um den Wert in USD pro Person zu erhalten.
- Wie hoch ist das gesamte Exportvolumen (SUM(exporte_mrd)) aller Sektoren, die in Industrieländern liegen?
- Berechne den durchschnittlichen
bip_anteildes Sektors Landwirtschaft für alle Länder in Afrika. - Wie viele Städte gibt es insgesamt in Ländern, deren
bip_pro_kopfüber 60.000 liegt? - Finde die Stadt mit den meisten Einwohnern, die in einem Schwellenland liegt.
- Berechne die Summe der Einwohner aller Städte, die in Ländern mit einer Arbeitslosenquote von über 10 % liegen.