|
|
Zeile 5: |
Zeile 5: |
| <big>[[Übung 1: Gemischte SQL-Abfragen]]</big><br> | | <big>[[Übung 1: Gemischte SQL-Abfragen]]</big><br> |
| <big>[[Übung 2: SQL-Abfragen über mehrere Tabellen]]</big> | | <big>[[Übung 2: SQL-Abfragen über mehrere Tabellen]]</big> |
− |
| |
− | '''Schema:'''<br>
| |
− | <br>
| |
− | <code>BUNDESLAND [ <span style="text-decoration: underline;">Name</span> : VARCHAR(100) ; <span style="text-decoration: overline;">Landeshauptstadt</span> : INT ; Einwohner : INT ; Fläche : INT ; <span style="text-decoration: overline;">Ministerpräsident</span> : INT ; BIP: DECIMAL(10,2) ]<br>
| |
− | LANDKREIS [ <span style="text-decoration: underline;">Name</span> : VARCHAR(100) ; Bevölkerungsdichte : INT ; <span style="text-decoration: overline;">Bundesland</span> : VARCHAR(100) ]<br>
| |
− | STADT [ <span style="text-decoration: underline;">ID</span> : INT ; Name : VARCHAR(100) ; Vorwahlen : VARCHAR(100) ; Webadresse : VARCHAR(100) ; Einwohner : INT ; <span style="text-decoration: overline;">Landkreis</span> : VARCHAR (100) ]<br>
| |
− | POLITIKER [<span style="text-decoration: underline;">ID</span> : INT ; Name : VARCHAR(50) ; Vorname : VARCHAR(50) ; GebDat : DATE ] <br>
| |
− | BERATER [ <span style="text-decoration: underline;">ID</span> : INT ; Name : VARCHAR(50) ; Vorname : VARCHAR(50) ; Fachgebiet : VARCHAR(100) ] <br>
| |
− | berät [ <span style="text-decoration: underline overline;">B_ID</span> : INT ; <span style="text-decoration: underline overline;">P_ID</span> : INT] <br>
| |
− | </code>
| |
− | <br>
| |
− | '''Vereinfachtes Klassendiagramm:'''<br>
| |
− | [[Datei:Klassendiagramm Bund und Laender.png]]
| |
− |
| |
− | '''Formuliere für nachfolgende Aufgaben die zugehörige SQL-Abfrage!''' <br>
| |
− |
| |
− | <u>Aufgabe 1:</u><br>
| |
− | Gib alle Informationen über Städte aus und sortiere sie absteigend nach der Anzahl ihrer Einwohner.
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT *
| |
− | FROM STADT
| |
− | ORDER BY Einwohner DESC
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 2:</u><br>
| |
− | Gib den Namen und das Geburtsdatum des Politikers aus, der Ministerpräsident von Bayern ist.
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT P.Name, P.GebDat
| |
− | FROM POLITIKER AS P, BUNDESLAND AS B
| |
− | WHERE B.Name = "Bayern" AND
| |
− | B.Ministerpräsident = P.ID
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 3:</u><br>
| |
− | Gib den Namen der Städte und deren Vorwahlen aus, die im Bundesland Hessen liegen.
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT S.Name, S.Vorwahlen
| |
− | FROM STADT AS S, LANDKREIS AS L
| |
− | WHERE L.Bundesland = "Hessen" AND
| |
− | S.Landkreis = L.Name
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 4:</u><br>
| |
− | Die Augsburger Bürger möchten einen Brief an ihren Ministerpräsidenten schreiben. Gib den Vornamen und Namen ihres Ministerpräsidenten aus.
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT P.Vorname, P.Name
| |
− | FROM STADT AS S, LANDKREIS AS L, BUNDESLAND AS B, POLITIKER AS P
| |
− | WHERE S.Name = "Augsburg" AND
| |
− | S.Landkreis = L.Name AND
| |
− | L.Bundesland = B.Name AND
| |
− | B.Ministerpräsident = P.ID
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 5:</u><br>
| |
− | Gib die Anzahl der Einwohner je Landkreis (Tipp: Tabelle STADT) aus.
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT Landkreis, SUM(Einwohner)
| |
− | FROM STADT
| |
− | GROUP BY Landkreis
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 6:</u><br>
| |
− | Wie viele Städte hat der Landkreis "Deggendorf"?
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT COUNT(ID)
| |
− | FROM STADT
| |
− | WHERE Landkreis = "Deggendorf"
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 7:</u><br>
| |
− | Wie viele Städte hat das Bundesland "Hessen"?
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT COUNT(S.ID)
| |
− | FROM STADT AS S, LANDKREIS AS L
| |
− | WHERE L.Bundesland = "Hessen" AND
| |
− | S.Landkreis = L.Name
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 8:</u><br>
| |
− | Welche Ministerpräsidenten (Name) regieren ein Bundesland, das größer als 70 000[km<sup>2</sup>] ist?
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT P.Name
| |
− | FROM POLITIKER AS P, BUNDESLAND AS B
| |
− | WHERE B.Fläche > 70000 AND
| |
− | P.ID = B.Ministerpräsident
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 9:</u><br>
| |
− | An welchem Wochentag wurde "Horst Seehofer" geboren?
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT DAYNAME(GebDat)
| |
− | FROM POLITIKER
| |
− | WHERE Name = "Seehofer" AND Vorname = "Horst"
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 10:</u><br>
| |
− | Gib eine Liste mit den Namen aller Ministerpräsidenten und deren Alter im Jahr 2015 aus!
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT Name, 2015 - YEAR(GebDat)
| |
− | FROM POLITIKER
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 11:</u><br>
| |
− | Welche Berater (Name, Vorname) beraten "Horst Seehofer" im Fachgebiet "Bildung"?
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT B.Name, B.Vorname
| |
− | FROM POLITIKER AS P, BERATER AS B, berät AS BT
| |
− | WHERE P.Name = "Seehofer" AND P.Vorname = "Horst" AND
| |
− | B.Fachgebiet = "Bildung" AND
| |
− | P.ID = BT.P_ID AND
| |
− | B.ID = BT.B_ID
| |
− | </syntaxhighlight>
| |
− | </popup>
| |
− |
| |
− | <u>Aufgabe 12:</u><br>
| |
− | Wie viele Berater stehen "Horst Seehofer" je Fachgebiet zur Verfügung?
| |
− | <popup name="Lösung">
| |
− | <syntaxhighlight lang="sql">
| |
− | SELECT B.Fachgebiet, COUNT(B.ID)
| |
− | FROM POLITIKER AS P, BERATER AS B, berät AS BT
| |
− | WHERE P.Name = "Seehofer" AND P.Vorname = "Horst" AND
| |
− | P.ID = BT.P_ID AND
| |
− | B.ID = BT.B_ID
| |
− | GROUP BY B.Fachgebiet
| |
− | </syntaxhighlight>
| |
− | </popup>
| |