DQL - ÜBUNGEN

Aufgabe 1 (am PC)

Gegeben sind folgende Relationen:

Welches Ergebnis liefern die folgenden SQL-Abfragen? Überprüfen Sie ihre DQL-Statements anhand der in 2.7.1 erstellten Datenbank namens „Rechnerverwaltung“ (Sind Fehler enthalten, so sind diese zu markieren)

a)

SELECT I.RNr
FROM Installationen I, Programm P
WHERE I.RNr=P.RNr AND Bereich='Grafik';

b)

SELECT StudAss, SUM(Gehalt) AS Ges
FROM Assistent
GROUP BY StudAss;

c)

SELECT StudAss, SUM(Gehalt)
FROM Assistent
GROUP BY StudAss
HAVING SUM(Gehalt)>4;

d)

SELECT SUM(Speicher)
FROM Rechner
WHERE Leist=3;

Aufgabe 2

In einem Weinkeller werden viele Weinflaschen (WEIN) gelagert. Jede Weinflasche wurde von einem Winzer (WINZER) befüllt und kann anhand der Datenbank leicht in den Regalreihen (KELLER) des Kellers gefunden werden. Es kann dabei angenommen werden, dass immer ausreichend Platz in den Regalen des Kellers vorhanden ist. Wird eine Flasche aus dem Keller entfernt, wird ein entsprechender Eintrag (PROTOKOLL) vermerkt. Wenn der Eigentümer des Kellers eine Flasche selbst trinkt, wird im Protokoll als Verwendung ’Eigenbedarf’ eingetragen.

Relation Winzer
wnrnamestrasseplzorttelefon
1Lackner TinnacherSteinbach 84567Gamlitz1234567
2Weingut PragerWeissenkirchen 483610Weissenkirchen1234567
3Weingut Emmerich KnollUnterloiben 103601Unterloiben12344457
4Weingut F.X. PichlerUnterloiben 273601Unterloiben11122233
5Weingut SpätleseWeintalstrasse 231136Wien
6Freie Weingarten WachauKremstalstrasse 233600Krems2304002
7Stiftskellerei
8Weingut BieglerWienerstrasse 883502Gumpoldskirchen54564565
Relation Wein
nrbezeichnungsortejahrgangpreisanzahlwnrposition
1Riesling KellerbergRiesling199928.002441
2LoibenbergGr. Veltliner200019.003642
3Ried KreutlesGr. Veltliner200019.001534
4Riesling SmaragdRiesling200021.003025
5GrauburgunderGrauburgunder200316.007216
6MorillonChardonnay20039.005517
7Riesling FederspielRiesling20039.908063
8ChardonnayChardonnay20039.001688
Relation Keller
knrreiheregalfach
1111
2112
3113
4121
5122
6211
7212
8221
Relation Protokoll
pnrnrpDatumverwendunganzahl
112003-01-12Geschenk an Herrn Berger12
232003-07-10Eigenbedarf2
312003-07-23Eigenbedarf4
462003-08-14Geschenk (Frau Kunz)6
512003-08-27Glasbruch1
642003-11-03Korkgeruch1
762003-11-03Eigenbedarf3

Folgende SQL-Abfragen sind gesucht! Überprüfen Sie ihre DQL-Statements anhand der in 2.7.1 erstellten Datenbank namens „Winzerverwaltung“

a) Geben Sie für die Sorte ’Riesling’ die Namen aller Winzer sowie die Flaschenanzahl aus. Sortieren Sie dabei nach der Flaschenanzahl absteigend.

nameanzahl
Freie Weingarten Wachau80
Weingut Prager30
Weingut F.X. Pichler24

b) Ermitteln Sie für jeden Winzer den durchschnittlichen Flaschenpreis und die Gesamtanzahl der Flaschen im Keller. Berücksichtigen Sie dabei nur Winzer, von denen bekannt ist, aus welchem Ort sie kommen. Sortieren Sie die Liste nach dem Preis absteigend.

namedurchschnittspreisgesamtanzahl
Weingut F.X. Pichler23.5060
Weingut Prager21.0030
Weingut Emmerich Knoll19.0015
Lackner Tinnacher12.50127
Freie Weingarten Wachau9.9080
Weingut Biegler9.0016

c) Geben Sie eine Liste aller Weinbezeichnungen sowie den Namen des erzeugenden Winzers aus, von denen im Jahr 2003 keine Flasche getrunken worden ist (Verwendung in Tabelle Protokoll =’Eigenbedarf’). Sie brauchen dabei nur Winzer berücksichtigen, von denen mindestens eine Flasche im Keller vorhanden ist.

nrbezeichnungname
2LoibenbergWeingut F.X. Pichler
4Riesling SmaragdWeingut Prager
5GrauburgunderLackner Tinnacher
7Riesling FederspielFreie Weingarten Wachau
8ChardonnayWeingut Biegler

d) Suchen Sie die Winzer, von denen der Kellereigentümer die meisten Flaschen getrunken (Verwendung in Tabelle Protokoll = ’Eigenbedarf’) hat. Geben Sie jeweils den Namen des Winzers sowie die Gesamtkosten des von diesem Winzer konsumierten Weines aus.

nameanzahlkosten
Weingut F.X. Pichler4112.00

e) Geben Sie fur jeden Winzer aus,

nameanzahlpreisklasse
Freie Weingarten Wachau80niedrig
Lackner Tinnacher55niedrig
Lackner Tinnacher72mittel
Weingut Biegler16niedrig
Weingut Emmerich Knoll15mittel
Weingut F.X. Pichler24gehoben
Weingut F.X. Pichler36mittel
Weingut Prager30gehoben

f) Erstellen Sie eine Liste, die angibt, wie viele Flaschen jedes in der Datenbank gespeicherten Winzers sich im Keller befinden. Sortieren Sie dabei nach der Flaschenanzahl absteigend.

nameanzahl
Lackner Tinnacher127
Freie Weingarten Wachau80
Weingut F.X. Pichler60
Weingut Prager30
Weingut Biegler16
Weingut Emmerich Knoll15
Weingut Spätlese
Stiftskellerei