Übung 2: SQL-Abfragen über mehrere Tabellen: Unterschied zwischen den Versionen

Aus ComeniusWiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 48: Zeile 48:
</popup>
</popup>


<u>Aufgabe 3:</u><br>
<u>Aufgabe 4:</u><br>
Wie lauten die Titel der CDs, die die Band "Foo Fighters" seit dem Jahr 2012 veröffentlicht haben?  
Wie lauten die Titel der CDs, die die Band "Foo Fighters" seit dem Jahr 2012 veröffentlicht haben?  
<popup name="Lösung">
<popup name="Lösung">

Version vom 1. April 2014, 13:20 Uhr

Schema:

BAND [ BandNr : INT ; Name : VARCHAR(100) ; Stil : VARCHAR(100) ]
PERSON [ AusweisNr : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Rolle : VARCHAR(50) ]
INSTRUMENT [ Name : VARCHAR(100) ; Baujahr : INT ]
CD [ CDNr : INT ; Titel : VARCHAR(100) ; Erscheinungsjahr : INT ; Album? : BOOLEAN ; BandNr : INT ]
ist_mitglied_von [ AusweisNr : INT ; BandNr : INT]
spielt [ AusweisNr : INT ; Name : VARCHAR(100) ]

Vereinfachtes Klassendiagramm:

Formuliere für nachfolgende Aufgaben die zugehörige SQL-Abfrage!

Aufgabe 1:
Gib eine Übersicht aus, welche Person (Name) welche(s) Instrument(e) spielt! <popup name="Lösung">

SELECT P.Name, S.Name
FROM PERSON AS P, spielt AS S
WHERE P.AusweisNr = S.AusweisNr

</popup>

Aufgabe 2:
Wie lauten die Titel der CDs, die die Band "Kings of Leon" veröffentlicht hat? <popup name="Lösung">

SELECT C.Titel
FROM BAND AS B, CD AS C
WHERE B.Name = "Kings of Leon" 
AND B.BandNr = C.BandNr

</popup>

Aufgabe 3:
Wie lautet der Name der Band, bei der "Caleb Followill" Mitglied ist? <popup name="Lösung">

SELECT B.Name
FROM BAND AS B, PERSON AS P, ist_mitglied_von AS IMV
WHERE P.Name = "Caleb Followill"
AND B.BandNr = IMV.BandNr 
AND P.AusweisNr = IMV.AusweisNr

</popup>

Aufgabe 4:
Wie lauten die Titel der CDs, die die Band "Foo Fighters" seit dem Jahr 2012 veröffentlicht haben? <popup name="Lösung">

SELECT C.Titel
FROM BAND AS B, CD AS C
WHERE B.Name = "Foo Fighters" 
AND B.BandNr = C.BandNr
AND C.Erscheinungsjahr >= 2012

</popup>