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

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „'''Schema:'''<br> <br> <code>BAND [ <span style="text-decoration: underline;">BandNr</span> : INT ; Name : VARCHAR(100) ; Stil : VARCHAR(100) ]<br> PERSON [ <s…“)
 
 
(21 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
 
'''Schema:'''<br>
 
'''Schema:'''<br>
 
<br>
 
<br>
<code>BAND [ <span style="text-decoration: underline;">BandNr</span> : INT ; Name : VARCHAR(100) ; Stil : VARCHAR(100) ]<br>
+
<code>BAND [ <span style="text-decoration: underline;">BandNr</span> : INT ; Name : VARCHAR(100) ; Stil : VARCHAR(100) ; Gründungsjahr : INT ]<br>
PERSON [ <span style="text-decoration: underline;">Nr</span> : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Rolle : VARCHAR(50) ]
+
PERSON [ <span style="text-decoration: underline;">AusweisNr</span> : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Rolle : VARCHAR(50) ]<br>
CD [ <span style="text-decoration: underline;">CDNr</span> : INT ; Titel : VARCHAR(100) ; Erscheinungsjahr : INT ; Album? : BOOLEAN ; <span style="text-decoration: underline;">BandNr</span> : INT ]
+
INSTRUMENT [ <span style="text-decoration: underline;">INr</span> : INT ; Art : VARCHAR(100) ; Baujahr : INT ]<br>
veröffentlich [ ]
+
CD [ <span style="text-decoration: underline;">CDNr</span> : INT ; Titel : VARCHAR(100) ; Erscheinungsjahr : INT ; Album? : BOOLEAN ; <span style="text-decoration: overline;">BandNr</span> : INT ]<br>
 +
ist_mitglied_von [ <span style="text-decoration: underline overline;">AusweisNr</span> : INT ; <span style="text-decoration: underline overline;">BandNr</span> : INT ] <br>
 +
spielt [ <span style="text-decoration: underline overline;">AusweisNr</span> : INT ; <span style="text-decoration: underline overline;">INr</span> : INT ]  
 
</code>
 
</code>
 
<br>
 
<br>
 +
 
'''Vereinfachtes Klassendiagramm:'''<br>
 
'''Vereinfachtes Klassendiagramm:'''<br>
[[Datei:Klassendiagramm Bund und Laender.png]]
+
[[Datei:Klassendiagramm Band.png]]
  
 
'''Formuliere für nachfolgende Aufgaben die zugehörige SQL-Abfrage!''' <br>
 
'''Formuliere für nachfolgende Aufgaben die zugehörige SQL-Abfrage!''' <br>
  
 
<u>Aufgabe 1:</u><br>
 
<u>Aufgabe 1:</u><br>
Gib alle Informationen über Städte aus und sortiere sie absteigend nach der Anzahl ihrer Einwohner.
+
Gib eine Übersicht aus, welche Person (Name) welche(s) Instrument(e) (Art) spielt!
 +
<popup name="Lösung">
 +
<syntaxhighlight lang="sql">
 +
SELECT P.Name, I.Art
 +
FROM PERSON AS P, spielt AS S, INSTRUMENT AS I
 +
WHERE P.AusweisNr = S.AusweisNr
 +
AND S.INr = I.INr
 +
</syntaxhighlight>
 +
</popup>
 +
 
 +
<u>Aufgabe 2:</u><br>
 +
Wie lauten die Titel der CDs, die die Band "Kings of Leon" veröffentlicht hat?
 +
<popup name="Lösung">
 +
<syntaxhighlight lang="sql">
 +
SELECT C.Titel
 +
FROM BAND AS B, CD AS C
 +
WHERE B.Name = "Kings of Leon"
 +
AND B.BandNr = C.BandNr
 +
</syntaxhighlight>
 +
</popup>
 +
 
 +
<u>Aufgabe 3:</u><br>
 +
Wie lautet der Name der Band, bei der "Caleb Followill" Mitglied ist?
 +
<popup name="Lösung">
 +
<syntaxhighlight lang="sql">
 +
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
 +
</syntaxhighlight>
 +
</popup>
 +
 
 +
<u>Aufgabe 4:</u><br>
 +
Wie lauten die Titel der CDs, die die Band "Foo Fighters" seit dem Jahr 2012 veröffentlicht hat?
 +
<popup name="Lösung">
 +
<syntaxhighlight lang="sql">
 +
SELECT C.Titel
 +
FROM BAND AS B, CD AS C
 +
WHERE B.Name = "Foo Fighters"
 +
AND B.BandNr = C.BandNr
 +
AND C.Erscheinungsjahr >= 2012
 +
</syntaxhighlight>
 +
</popup>
 +
 
 +
<u>Aufgabe 5:</u><br>
 +
Wer (AusweisNr und Name) ist Mitglied einer "Rock"-Band?
 +
<popup name="Lösung">
 +
<syntaxhighlight lang="sql">
 +
SELECT P.AusweisNr, P.Name
 +
FROM PERSON AS P, BAND AS B, ist_mitglied_von AS IMV
 +
WHERE B.Stil = "Rock"
 +
AND B.BandNr = IMV.BandNr
 +
AND IMV.AusweisNr = P.AusweisNr
 +
</syntaxhighlight>
 +
</popup>
 +
 
 +
<u>Aufgabe 6:</u><br>
 +
Welche Instrumente (Name) spielen die Mitglieder der Band "Imagine Dragons"?
 +
<popup name="Lösung">
 +
<syntaxhighlight lang="sql">
 +
SELECT I.Name
 +
FROM PERSON AS P, BAND AS B, ist_mitglied_von AS IMV, INSTRUMENT AS I, spielt AS S
 +
WHERE B.Name = "Imagine Dragons"
 +
AND B.BandNr = IMV.BandNr
 +
AND IMV.AusweisNr = P.AusweisNr
 +
AND P.AusweisNr = S.AusweisNr
 +
S.INr = I.INr
 +
</syntaxhighlight>
 +
</popup>
 +
 
 +
<u>Aufgabe 7:</u><br>
 +
Wer (Name) ist Mitglied einer "Metal"-Band, die vor dem Jahr 1990 gegründet wurde?
 
<popup name="Lösung">
 
<popup name="Lösung">
 
<syntaxhighlight lang="sql">
 
<syntaxhighlight lang="sql">
SELECT *
+
SELECT B.Name
FROM STADT
+
FROM PERSON AS P, BAND AS B, ist_mitglied_von AS IMV
ORDER BY Einwohner DESC
+
WHERE B.Stil = "Metal"
 +
AND B.Gründungsjahr < 1990
 +
AND B.BandNr = IMV.BandNr
 +
AND IMV.AusweisNr = P.AusweisNr
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</popup>
 
</popup>

Aktuelle Version vom 7. April 2014, 08:30 Uhr

Schema:

BAND [ BandNr : INT ; Name : VARCHAR(100) ; Stil : VARCHAR(100) ; Gründungsjahr : INT ]
PERSON [ AusweisNr : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Rolle : VARCHAR(50) ]
INSTRUMENT [ INr : INT ; Art : 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 ; INr : INT ]

Vereinfachtes Klassendiagramm:
Klassendiagramm Band.png

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

Aufgabe 1:
Gib eine Übersicht aus, welche Person (Name) welche(s) Instrument(e) (Art) spielt!

Aufgabe 2:
Wie lauten die Titel der CDs, die die Band "Kings of Leon" veröffentlicht hat?

Aufgabe 3:
Wie lautet der Name der Band, bei der "Caleb Followill" Mitglied ist?

Aufgabe 4:
Wie lauten die Titel der CDs, die die Band "Foo Fighters" seit dem Jahr 2012 veröffentlicht hat?

Aufgabe 5:
Wer (AusweisNr und Name) ist Mitglied einer "Rock"-Band?

Aufgabe 6:
Welche Instrumente (Name) spielen die Mitglieder der Band "Imagine Dragons"?

Aufgabe 7:
Wer (Name) ist Mitglied einer "Metal"-Band, die vor dem Jahr 1990 gegründet wurde?