SQL-Island: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
3.586 Bytes hinzugefügt ,  23:04, 10. Mär. 2021
keine Bearbeitungszusammenfassung
(Die Seite wurde neu angelegt: „{{Kurzlink|sql-island}} Bei [https://sql-island.informatik.uni-kl.de SQL-Island] lernst Du spielerisch die Grundlagen der Abfragesprache SQL kennen, oder kanns…“)
 
Keine Bearbeitungszusammenfassung
Zeile 14: Zeile 14:
=== Zeige mir die Liste der Bewohner. ===
=== Zeige mir die Liste der Bewohner. ===
{{Lösung:Start}}
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT * FROM bewohner
SELECT * FROM bewohner
</syntaxhighlight>
{{Lösung:End}}
{{Lösung:End}}


=== Nagut, dann muss ich mal schauen, welche Bewohner friedlich sind. ===
=== Nagut, dann muss ich mal schauen, welche Bewohner friedlich sind. ===
{{Lösung:Start}}
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT * FROM bewohner WHERE status = "friedlich"
SELECT * FROM bewohner WHERE status = "friedlich"
</syntaxhighlight>
{{Lösung:End}}
{{Lösung:End}}


=== Lasst uns einen friedlichen Waffenschmied suchen, der mir ein Schwert schmieden kann. ===
=== Lasst uns einen friedlichen Waffenschmied suchen, der mir ein Schwert schmieden kann. ===
{{Lösung:Start}}
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT * FROM bewohner WHERE status = "friedlich" AND beruf = "Waffenschmied"
SELECT * FROM bewohner WHERE status = "friedlich" AND beruf = "Waffenschmied"
</syntaxhighlight>
{{Lösung:End}}
{{Lösung:End}}


=== Vielleicht gibt es noch andere Schmiede. ===
=== Vielleicht gibt es noch andere Schmiede. ===
{{Lösung:Start}}
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT * FROM bewohner WHERE status = "friedlich" AND beruf LIKE "%schmied"
SELECT * FROM bewohner WHERE status = "friedlich" AND beruf LIKE "%schmied"
</syntaxhighlight>
{{Lösung:End}}
{{Lösung:End}}


Zeile 39: Zeile 47:
{{Lösung:End}}
{{Lösung:End}}


===  ===
=== Wie viel Gold hast du momentan? ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT gold FROM bewohner WHERE name = "Fremder"
</syntaxhighlight>
{{Lösung:End}}
 
=== Lsite alle Gegenstände auf, die niemandem gehören. ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT * FROM gegenstand WHERE besitzer IS NULL
</syntaxhighlight>
{{Lösung:End}}
 
=== Kennst du einen Trick, wie wir alle Gegenstände auf einmal einsammeln können, die niemandem gehören? ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
UPDATE gegenstand SET besitzer = 20 WHERE besitzer IS NULL
</syntaxhighlight>
{{Lösung:End}}
 
=== Jawoll! Welche Gegenstände besitze ich nun?  ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT * FROM gegenstand WHERE besitzer = 20
</syntaxhighlight>
{{Lösung:End}}
 
=== Finde friedliche Bewohner mit dem Beruf Haendler oder Kaufmann. ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
Finde friedliche Bewohner mit dem Beruf Haendler oder Kaufmann.
</syntaxhighlight>
{{Lösung:End}}
 
=== Gib mir bitte die beiden Gegenstände. ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
UPDATE gegenstand SET besitzer = 15 WHERE besitzer = 20 AND (gegenstand = "Ring" OR gegenstand = "Teekanne")
</syntaxhighlight>
{{Lösung:End}}
 
=== Meinen Namen von Fremder auf meinen richtigen Namen ändern.  ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
UPDATE bewohner SET name = "<Name>" WHERE bewohnernr = 20
</syntaxhighlight>
{{Lösung:End}}
 
=== Zeige mir alle Bäcker. ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT * FROM bewohner WHERE beruf = "Bäcker" ORDER BY gold DESC
</syntaxhighlight>
{{Lösung:End}}
 
=== Gibt es auf der Insel einen Piloten? ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT * FROM bewohner WHERE beruf = "Pilot"
</syntaxhighlight>
{{Lösung:End}}
 
=== Dann suche ich erst einmal den Häuptling des Dorfes Zwiebelhausen. ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT bewohner.name FROM bewohner, dorf WHERE bewohner.bewohnernr = dorf.haeuptling AND dorf.name = "Zwiebelhausen"
</syntaxhighlight>
{{Lösung:End}}
 
=== Wie viele Frauen gibt es in Zwiebelhausen? ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT COUNT(*) FROM bewohner, dorf WHERE bewohner.dorfnr = dorf.dorfnr AND dorf.name = "Zwiebelhausen" AND bewohner.geschlecht = "w"
</syntaxhighlight>
{{Lösung:End}}
 
=== Wie heißen die Frauen in Zwiebelhausen? ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT bewohner.name FROM bewohner, dorf WHERE bewohner.dorfnr = dorf.dorfnr AND dorf.name = "Zwiebelhausen" AND bewohner.geschlecht = "w"
</syntaxhighlight>
{{Lösung:End}}
 
=== So viel Gold bekommen, wie die Händler, Kaufmänner und Bäcker zusammen besitzen. ===
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT SUM(gold) FROM bewohner WHERE beruf = "Haendler" OR beruf = "Kaufmann" OR beruf = "Baecker"
</syntaxhighlight>
 
Alternative für Fortgeschrittene:
<syntaxhighlight lang="sql">
SELECT SUM(gold) FROM bewohner WHERE beruf IN ("Haendler", "Kaufmann", "Baecker")
</syntaxhighlight>
{{Lösung:End}}
 
=== Wie viel Gold haben im Durchschnitt die einzelnen Bewohnergruppen je nach Status ===
{{Lösung:Start}}
{{Lösung:Start}}
<syntaxhighlight lang="sql">
SELECT status, AVG(gold) FROM bewohner GROUP BY status ORDER BY AVG(gold)
</syntaxhighlight>
{{Lösung:End}}


=== Was tust du wohl als nächstes? ===
{{Lösung:Start}}
Selber ausprobieren. 😉
{{Lösung:End}}
{{Lösung:End}}

Navigationsmenü