Lösungen zur Bundesligadatenbank

USE bundesliga;

# Wenn dieser Befehl an den Server geschickt wurde (Strg+Enter)
# dann kann man bei allen folgenden Befehlen den Namen der Datenbank
# also "bundesliga" weg lassen und nur die Tabelle schreiben.
# Praktisch! :-)










# Aufgabe 1
#-----------------------------
SELECT Name
FROM Vereine
WHERE Name LIKE 'FC%';










# Aufgabe 2
#-----------------------------
SELECT Name, Tore
FROM Spieler
WHERE Tore >= 10
ORDER BY Tore DESC;










# Aufgabe 3
#-----------------------------
SELECT Vereine.Name, Spieler.Name, Tore
FROM Spieler, Vereine
WHERE Spieler.VereinsID = Vereine.ID
AND Tore >= 10
AND Vereine.Name = 'FC Schalke 04';










# Aufgabe 4
#-----------------------------
SELECT COUNT(*) AS 'Spieler des FC Schalke 04'
FROM Spieler, Vereine
WHERE Spieler.VereinsID = Vereine.ID
AND Vereine.Name = 'FC Schalke 04';










# Aufgabe 5
#-----------------------------
SELECT Name, Land
FROM Spieler
WHERE Land != 'Deutschland'
ORDER BY Name;










# Aufgabe 6
#-----------------------------
SELECT Name, Land
FROM Spieler
WHERE Land = 'Island' OR Land = 'Jamaika'
ORDER BY Name;










# Aufgabe 7
#-----------------------------
SELECT Land, COUNT(*) AS "Spieler"
FROM Spieler
WHERE Land != ""
GROUP BY Land
ORDER BY COUNT(*) DESC;










# Aufgabe 8
#-----------------------------
SELECT Vereine.Name, COUNT(*) AS "Anzahl der Spieler"
FROM Vereine, Spieler
WHERE Vereine.ID = Spieler.VereinsID
GROUP BY Vereine.ID
ORDER BY COUNT(*);










# Aufgabe 9
#-----------------------------
SELECT Vereine.Name, COUNT(*) AS "Anzahl der Spieler"
FROM Vereine, Spieler
WHERE Vereine.ID = Spieler.VereinsID
AND Vereine.Name LIKE '%FC%'
GROUP BY Vereine.ID
ORDER BY COUNT(*);










# Aufgabe 10
#-----------------------------
SELECT Vereine.Name, COUNT(*) AS "Anzahl Heimspiele"
FROM Vereine, Spiele
WHERE Vereine.ID = Spiele.Heim
AND Datum <= NOW()
GROUP BY Vereine.ID
ORDER BY COUNT(*);










# Aufgabe 11
#-----------------------------
SELECT MIN(Datum) AS "Datum des ersten Spiels"
FROM Spiele;










# Aufgabe 12
#-----------------------------
SELECT MAX(Datum) AS "Datum des letzten Spiels"
FROM Spiele;










# Aufgabe 13
#-----------------------------
SELECT COUNT(*) AS "Anzahl der Spiele in der Saison"
FROM Spiele;










# Aufgabe 14
#-----------------------------
SELECT Vereine.Name, COUNT(*) AS "Anzahl der Spiele"
FROM Vereine, Spiele
WHERE (Vereine.ID = Spiele.Heim OR Vereine.ID = Spiele.Gast)
AND Vereine.Name LIKE "Eintracht%"
GROUP BY Vereine.ID;










# Aufgabe 15
#-----------------------------
SELECT COUNT(*) AS "Anzahl der Spiele im Dezember"
FROM Spiele
WHERE MONTH(Datum) = 12;










# Aufgabe 16
#-----------------------------
SELECT Vereine.Name
FROM Vereine, Spiele
WHERE (Vereine.ID = Spiele.Heim OR Vereine.ID = Spiele.Gast)
AND Datum = "2021-12-18"
GROUP BY Vereine.ID
ORDER BY Vereine.Name;










# Aufgabe 17
#-----------------------------
SELECT COUNT(*) AS 'Torwarte'
FROM Spieler
WHERE Trikotnummer = 1;










# Aufgabe 18
#-----------------------------
SELECT SUM(Tore_Gast) AS 'VfB Gegentore bei Heimspielen'
FROM Vereine, Spiele
WHERE Vereine.ID = Spiele.Heim
AND Vereine.Name = "VfB Stuttgart";










# Aufgabe 19
#-----------------------------
SELECT SUM(Tore_Heim) AS 'VfB Gegentore bei Gastspielen'
FROM Vereine, Spiele
WHERE Vereine.ID = Spiele.Gast
AND Vereine.Name = "VfB Stuttgart";










# Aufgabe 20
#-----------------------------
SELECT  MONTH(Datum) AS 'Monat (als Zahl)', SUM(Tore_Heim + Tore_Gast) AS 'Tore insgesamt'
FROM Spiele
GROUP BY MONTH(Datum)
ORDER BY MONTH(Datum);