Abfrage 1: Es sollen alle ausgeliehenen Elektro-Roller in einer Tabelle ausgegeben werden
Die SQL-Abfrage
SELECT Ausleihe.Leih_ID, Ausleihe.Datum, ERoller.ERoller_ID, Fabrikat.FabrikatName, Kunde.KName, Leihstation.LName
FROM Ausleihe JOIN ERoller JOIN Fabrikat JOIN Kunde JOIN Leihstation
ON Ausleihe.ERoller_ID = ERoller.ERoller_ID AND ERoller.Fabrikat_ID = Fabrikat.Fabrikat_ID
AND Ausleihe.Kunden_ID = Kunde.Kunden_ID AND Ausleihe.Leihstation_ID = Leihstation.Leihstation_ID
ORDER BY Ausleihe.Leih_ID ASC
liefert:
Abfrage 2: Es sollen alle geparkten Elektro-Roller in einer Tabelle ausgegeben werden
Die SQL-Abfrage
SELECT Parken.Park_ID, Parken.Datum, ERoller.ERoller_ID, Fabrikat.FabrikatName, Leihstation.LName
FROM Parken JOIN ERoller JOIN Fabrikat JOIN Leihstation
ON Parken.ERoller_ID = ERoller.ERoller_ID AND ERoller.Fabrikat_ID = Fabrikat.Fabrikat_ID
AND Parken.Leihstations_ID = Leihstation.Leihstation_ID
ORDER BY Parken.Park_ID ASC
liefert:
Abfrage 3: Es soll die Anzahl der an einer Leihstation geparkten Elektro-Roller ausgegeben werden
Mit Hilfe sogenannter Aggregatfunktionen können z.B. Anzahlen von Datensätzen ermittelt werden oder die Summe von angegebenen Werten ermittelt werden. Wir verwenden die Aggregatfunktion "COUNT" um die Anzahl der geparkten Elektro-Roller zu ermitteln:
SELECT COUNT(PARK_ID) FROM Parken
liefert die Anzahl 6:
Abfrage 4: Es soll die Anzahl der ausgeliehenen Elektro-Roller ausgegeben werden
Die SQL-Abfrage
SELECT COUNT(PARK_ID) FROM Parken
liefert die Anzahl 4:
Abfrage 5: Es soll geprüft werden, ob die Gesamtanzahl der Elektro-Roller mit der Anzahl der ausgeliehenen und geparkten Elektro-Roller übereinstimmt
Die folgende SQL-Abfrage liefert als Ergebnis 0, denn es wird die Anzahl der ausgeliehenen und die Anzahl der geparkten Elektro-Roller addiert und die Anzahl der vorhandenen davon abgezogen:
SELECT
(SELECT COUNT(Leih_ID) FROM Ausleihe)
+ (SELECT COUNT(Park_ID) FROM Parken)
- (SELECT COUNT(ERoller_ID) FROM ERoller)
Man kann sich auch alle Werte anzeigen lassen, indem man mehrere SQL-Abfragen mit dem Schlüsselwort "UNION" kombiniert:
SELECT
(SELECT COUNT(Leih_ID) FROM Ausleihe)
+ (SELECT COUNT(Park_ID) FROM Parken)
- (SELECT COUNT(ERoller_ID) FROM ERoller) UNION
SELECT COUNT(Leih_ID) FROM Ausleihe UNION
SELECT COUNT(Park_ID) FROM Parken UNION
SELECT COUNT(ERoller_ID) FROM ERoller
Diese Abfrage liefert:
Abfrage 6: Es soll die Summe aller Einnahmen aus der Ausleihe berechnet werden
Die Tabelle Ausleihe wird mit einem Feld LGebuehr ergänzt, welches das Format "REAL" hat, so dass Kommazahlen darin gespeichert werden können.
Im Attribut LGebuehr sind folgende Leihgebühren eingetragen:
Die geänderte Datenbank können Sie herunterladen: eroller2.zip
Die folgende SQL-Abfrage
SELECT SUM(LGebuehr) FROM Ausleihe;
liefert die Summe der Leihgebühren 5.3 + 7.2 + 1.5 + 2.8 = 16.8: