schule:sql_island_adventure
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| schule:sql_island_adventure [2016-05-01 19:18] – [Die ersten Runden...] Komplettlösung marco.bakera | schule:sql_island_adventure [2017-04-19 06:39] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== SQL Island Adventure ====== | ||
| + | |||
| + | Hier sind die ersten Schritte für das "SQL Island Adventure" | ||
| + | |||
| + | ===== Die ersten Runden... ===== | ||
| + | < | ||
| + | |||
| + | Nach einem Flugzeugabsturz stellst du fest, dass du der einzige Überlebende bist. | ||
| + | Du landest auf einer Insel, erkundest sie und findest einige Dörfer: | ||
| + | > SELECT * FROM dorf | ||
| + | dorfnr name haeuptling | ||
| + | 1 Affenstadt 1 | ||
| + | 2 Gurkendorf 6 | ||
| + | 3 Zwiebelhausen 13 | ||
| + | Weiter | ||
| + | |||
| + | Du triffst während deiner Erkundung auf viele Bewohner der Insel. Welche? | ||
| + | |||
| + | > select * from bewohner; | ||
| + | bewohnernr name dorfnr geschlecht beruf gold status | ||
| + | 1 Paul Backmann 2 m Baecker 850 friedlich | ||
| + | 2 Ernst Peng 3 m Waffenschmied 280 friedlich | ||
| + | 3 Rita Ochse 1 w Baecker 350 friedlich | ||
| + | 4 Carl Ochse 1 m Kaufmann 250 friedlich | ||
| + | 5 Dirty Dieter 3 m Schmied 650 boese | ||
| + | 6 Gerd Schlachter 2 m Metzger 4850 boese | ||
| + | 7 Peter Schlachter 3 m Metzger 3250 boese | ||
| + | 8 Arthur Schneiderpaule 2 m Pilot 490 gefangen | ||
| + | 9 Tanja Trommler 1 w Baecker 550 boese | ||
| + | 10 Peter Trommler 1 m Schmied 600 friedlich | ||
| + | 11 Dirty Doerthe 3 w Erntehelfer 10 boese | ||
| + | 12 Otto Armleuchter 2 m Haendler 680 friedlich | ||
| + | 13 Fritz Dichter 2 m Hoerbuchautor 420 friedlich | ||
| + | 14 Enrico Zimmermann 2 m Waffenschmied 510 boese | ||
| + | 15 Helga Rasenkopf 2 w Haendler 680 friedlich | ||
| + | 16 Irene Hutmacher 1 w Haendler 770 boese | ||
| + | 17 Erich Rasenkopf 3 m Metzger 990 friedlich | ||
| + | 18 Rudolf Gaul 3 m Hufschmied 390 friedlich | ||
| + | 19 Anna Flysh 2 w Metzger 2280 friedlich | ||
| + | Yeah! | ||
| + | |||
| + | Deine Erkundung hat dich hungrig gemacht. Lass uns eine Metzgerei suchen | ||
| + | und eine Gratis-Wurstscheibe schnorren! | ||
| + | > SELECT * FROM bewohner WHERE beruf = ' | ||
| + | bewohnernr name dorfnr geschlecht beruf gold status | ||
| + | 6 Gerd Schlachter 2 m Metzger 4850 boese | ||
| + | 7 Peter Schlachter 3 m Metzger 3250 boese | ||
| + | 17 Erich Rasenkopf 3 m Metzger 990 friedlich | ||
| + | 19 Anna Flysh 2 w Metzger 2280 friedlich | ||
| + | Weiter | ||
| + | |||
| + | Juhu, Erich gibt uns eine Scheibe Wurst! Bei deiner weiteren Reise solltest | ||
| + | du jedoch beachten, dass nicht alle Bewohner friedlich sind. Da du nicht | ||
| + | bewaffnet bist, solltest du dich zunächst von den bösen Bewohnern fernhalten. | ||
| + | Welche Bewohner sind friedlich? | ||
| + | |||
| + | > select * from bewohner where status=" | ||
| + | bewohnernr name dorfnr geschlecht beruf gold status | ||
| + | 1 Paul Backmann 2 m Baecker 850 friedlich | ||
| + | 2 Ernst Peng 3 m Waffenschmied 280 friedlich | ||
| + | 3 Rita Ochse 1 w Baecker 350 friedlich | ||
| + | 4 Carl Ochse 1 m Kaufmann 250 friedlich | ||
| + | 10 Peter Trommler 1 m Schmied 600 friedlich | ||
| + | 12 Otto Armleuchter 2 m Haendler 680 friedlich | ||
| + | 13 Fritz Dichter 2 m Hoerbuchautor 420 friedlich | ||
| + | 15 Helga Rasenkopf 2 w Haendler 680 friedlich | ||
| + | 17 Erich Rasenkopf 3 m Metzger 990 friedlich | ||
| + | 18 Rudolf Gaul 3 m Hufschmied 390 friedlich | ||
| + | 19 Anna Flysh 2 w Metzger 2280 friedlich | ||
| + | Yeah! | ||
| + | |||
| + | Sehr gut! Nun suche dir einen friedlichen Waffenschmied, | ||
| + | Schwert schmieden kann. | ||
| + | (Hinweis: Bedingungen im WHERE-Teil kannst du mit AND verknüpfen) | ||
| + | |||
| + | > select * from bewohner where status=" | ||
| + | bewohnernr name dorfnr geschlecht beruf gold status | ||
| + | 2 Ernst Peng 3 m Waffenschmied 280 friedlich | ||
| + | Yeah! | ||
| + | |||
| + | Hm, das sind sehr wenige. Vielleicht gibt es noch andere Schmiede, | ||
| + | z.B. Hufschmied, Schmied, Waffenschmied, | ||
| + | um alle Bewohner zu finden, deren Beruf mit ' | ||
| + | (% ist ein Platzhalter für beliebig viele Zeichen). | ||
| + | |||
| + | > select * from bewohner where status=" | ||
| + | bewohnernr name dorfnr geschlecht beruf gold status | ||
| + | 2 Ernst Peng 3 m Waffenschmied 280 friedlich | ||
| + | 10 Peter Trommler 1 m Schmied 600 friedlich | ||
| + | 18 Rudolf Gaul 3 m Hufschmied 390 friedlich | ||
| + | Yeah! | ||
| + | |||
| + | Sehr gut! Diese Schmiede kommen alle in Frage. Du gehst sie nacheinader besuchen, | ||
| + | um sie zu fragen, ob sie dir ein Schwert schmieden können. | ||
| + | Während deiner Erkundungstour triffst du auf Paul, einen Bürgermeister. Er trägt | ||
| + | dich als Bewohner in sein Dorf ein. Da er dich nicht nach deinem Namen gefragt hat, | ||
| + | nennt er dich " | ||
| + | > INSERT INTO bewohner (name, dorfnr, geschlecht, beruf, gold, status) VALUES (' | ||
| + | OK Weiter | ||
| + | |||
| + | Finde deine bewohnernr heraus! (Tipp: Der * in den vorherigen Abfragen stand | ||
| + | immer für "alle Spalten" | ||
| + | mit Komma getrennte Spaltennamen angeben. | ||
| + | |||
| + | > select bewohnernr from bewohner where name=" | ||
| + | bewohnernr | ||
| + | 20 | ||
| + | Yeah! | ||
| + | |||
| + | Nun besuchst du einen der Schmiede, die du dir rausgesucht hast. Er sagt dir, | ||
| + | dass ein Schwert 150 Gold kostet. Wie viel Gold hast du momentan? | ||
| + | |||
| + | > select gold from bewohner where bewohnernr=20; | ||
| + | gold | ||
| + | 0 | ||
| + | Yeah! | ||
| + | |||
| + | Mist! Um an Gold zu kommen, müsstest du arbeiten... Obwohl! Man erzählt sich, | ||
| + | dass auf der Insel viele Gegenstände herumliegen, | ||
| + | Diese Gegenstände kannst du einsammeln und an Händler verkaufen. Liste alle | ||
| + | Gegenstände auf, die niemandem gehören. | ||
| + | Tipp: Herrenlose Gegenstände erkennt man an WHERE besitzer IS NULL. | ||
| + | |||
| + | > select * from gegenstand where besitzer is NULL; | ||
| + | gegenstand besitzer | ||
| + | Teekanne | ||
| + | Ring | ||
| + | Kaffeetasse | ||
| + | Eimer | ||
| + | Pappkarton | ||
| + | Gluehbirne | ||
| + | Yeah! | ||
| + | |||
| + | Lasst uns die Kaffeetasse einsammeln. Eine Kaffeetasse kann | ||
| + | man immer mal gebrauchen. | ||
| + | > UPDATE gegenstand SET besitzer = 20 WHERE gegenstand = ' | ||
| + | OK Weiter | ||
| + | |||
| + | Kennst du einen Trick, wie wir alle Gegenstände auf einmal einsammeln | ||
| + | können, die niemandem gehören? | ||
| + | |||
| + | > update gegenstand set besitzer=20 where besitzer is NULL; | ||
| + | OKYeah! | ||
| + | |||
| + | Yeah! Zeige mir nun alle Gegenstände, | ||
| + | |||
| + | > select * from gegenstand where besitzer=20; | ||
| + | gegenstand besitzer | ||
| + | Teekanne 20 | ||
| + | Ring 20 | ||
| + | Kaffeetasse 20 | ||
| + | Eimer 20 | ||
| + | Pappkarton 20 | ||
| + | Gluehbirne 20 | ||
| + | Yeah! | ||
| + | |||
| + | Finde friedliche Bewohner mit dem Beruf Haendler oder Kaufmann. | ||
| + | Eventuell möchten sie etwas von uns kaufen. (Hinweis: Achte | ||
| + | bei AND- und OR-Verknüpfungen auf korrekte Klammerung) | ||
| + | |||
| + | </ | ||
| + | |||
| + | Wie geht die Geschichte weiter?... | ||
| + | |||
| + | [[privat: | ||
| + | ===== Inhalte der Tabellen ===== | ||
| + | |||
| + | Die Inhalte der Tabellen. | ||
| + | |||
| + | < | ||
| + | DORF (dorfnr, name, haeuptling) | ||
| + | BEWOHNER (bewohnernr, | ||
| + | GEGENSTAND (gegenstand, | ||
| + | |||
| + | > SELECT * FROM dorf | ||
| + | |||
| + | dorfnr name haeuptling | ||
| + | 1 Affenstadt 1 | ||
| + | 2 Gurkendorf 6 | ||
| + | 3 Zwiebelhausen 13 | ||
| + | |||
| + | > SELECT * FROM bewohner | ||
| + | bewohnernr name dorfnr geschlecht beruf gold status | ||
| + | 1 Paul Backmann 2 m Baecker 850 friedlich | ||
| + | 2 Ernst Peng 3 m Waffenschmied 280 friedlich | ||
| + | 3 Rita Ochse 1 w Baecker 350 friedlich | ||
| + | 4 Carl Ochse 1 m Kaufmann 250 friedlich | ||
| + | 5 Dirty Dieter 3 m Schmied 650 boese | ||
| + | 6 Gerd Schlachter 2 m Metzger 4850 boese | ||
| + | 7 Peter Schlachter 3 m Metzger 3250 boese | ||
| + | 8 Arthur Schneiderpaule 2 m Pilot 490 gefangen | ||
| + | 9 Tanja Trommler 1 w Baecker 550 boese | ||
| + | 10 Peter Trommler 1 m Schmied 600 friedlich | ||
| + | 11 Dirty Doerthe 3 w Erntehelfer 10 boese | ||
| + | 12 Otto Armleuchter 2 m Haendler 680 friedlich | ||
| + | 13 Fritz Dichter 2 m Hoerbuchautor 420 friedlich | ||
| + | 14 Enrico Zimmermann 2 m Waffenschmied 510 boese | ||
| + | 15 Helga Rasenkopf 2 w Haendler 680 friedlich | ||
| + | 16 Irene Hutmacher 1 w Haendler 770 boese | ||
| + | 17 Erich Rasenkopf 3 m Metzger 990 friedlich | ||
| + | 18 Rudolf Gaul 3 m Hufschmied 390 friedlich | ||
| + | 19 Anna Flysh 2 w Metzger 2280 friedlich | ||
| + | |||
| + | > SELECT * FROM gegenstand | ||
| + | gegenstand besitzer | ||
| + | Teekanne | ||
| + | Spazierstock 5 | ||
| + | Hammer 2 | ||
| + | Ring | ||
| + | Kaffeetasse | ||
| + | Eimer | ||
| + | Seil 17 | ||
| + | Pappkarton | ||
| + | Gluehbirne | ||
| + | |||
| + | </ | ||
