Fußballhelden
Auf der Seite DBup2date der Universität Bayreuth ist eine Datenbank zur deutschen Bundesliga, mit der man Abfragen üben kann.
Öffne einen neuen Tab und gehe auf die Seite https://dbup2date.uni-bayreuth.de/bundesliga.html.
Oben auf der Seite siehst du ein Datenbankschema, indem Schlüssel unterstrichen und Fremdschlüssel überstrichen sind.
Darunter ist ein Editor, indem du entweder die SQL Abfrage schreiben kannst oder graphisch mit Bausteinen die SQL Abfragen zusammenbauen kannst.
Zum Warmwerden 1: Gib die Namen aller Vereine aus.
Lösung anzeigen
Die Tabelle Verein hat ein Attribut Name:
SELECT Name
FROM Verein;Suche den Namen und das Land der Spieler heraus, die zwischen 20 und 25 Spiele gespielt haben.
Lösung anzeigen
Du kannst mit AND zwei Bedingungen verknüpfen, die gleichzeitig gelten sollen.
Unter anderem mit < und > kannst du Zahlwerte vergleichen.
SELECT Spieler_Name, Land
FROM Spieler
WHERE Spiele < 25
AND Spiele > 20;Verbinde die Informationen, die es in der Tabelle Spieler gibt mit den Informationen der zugehörigen Vereine und gib alles aus.
Lösung anzeigen
Du bildest einen natürlichen Verbund aus Spieler und Verein, indem du den Fremdschlüssel Vereins_ID in Spieler mit dem Schlüssel V_ID in Verein vergleichst:
SELECT *
FROM Spieler, Verein
WHERE V_ID=Vereins_ID;Gib den Namen und die Trikotnummer aller Spieler aus, die beim FC Bayern München spielen
Lösung anzeigen
Es werden nicht mehr alle Daten ausgegeben, sondern nur noch die Trikot_Nr und der Spieler_Name.
Neben dem Vergleich der Schlüssel, um den natürlichen Verbund zu bilden, muss auch noch der Vereinsname überprüft werden:
SELECT Spieler_Name, Trikot_Nr
From Verein, Spieler
Where V_ID=Vereins_ID
AND Name ="FC Bayern München"Gib Für alle Auswärtsspiele aller Vereine (Spiele als Gast) den Name des Vereins, die Tore der Heimmannschaft und die Tore der Gastmannschaft an, wenn die Gastmannschaft mindestens ein Tor mehr geschossen hat als die Heimmannschaft.
Lösung anzeigen
Ausgegeben werden soll der Name aus der Tabelle Verein und die Tore_Heim und Tore_Gast aus der Tabelle Spiel.
Verein und Spieler sind die beiden beteiligten Tabellen.
Den natürlichen Verbund der beiden Tabellen bildet man mit Gast=V_ID.
Zusätzlich soll die Gastmannschaft noch mehr Tore geschossen haben, als die Heimmannschaft, also Tore_Gast > Tore_Heim
Select Name, Tore_Heim, Tore_Gast
From Spiel, Verein
Where Gast=V_ID
AND Tore_Gast > Tore_Heim;