Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:sql_island_adventure

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:sql_island_adventure [2015-04-17 10:30] – Reihenfolge marco.bakeraschule:sql_island_adventure [2017-04-19 08: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... =====
 +<html><pre>
 +
 +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 = 'Metzger'
 +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="friedlich";
 +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, der dir ein 
 +Schwert schmieden kann. 
 +(Hinweis: Bedingungen im WHERE-Teil kannst du mit AND verknüpfen)
 +
 +> select * from bewohner where status="friedlich" and beruf="Waffenschmied";
 +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, etc. Probiere beruf LIKE '%schmied', 
 +um alle Bewohner zu finden, deren Beruf mit 'schmied' endet 
 +(% ist ein Platzhalter für beliebig viele Zeichen).
 +
 +> select * from bewohner where status="friedlich" and beruf like "%schmied";
 +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 "Fremder".
 +> INSERT INTO bewohner (name, dorfnr, geschlecht, beruf, gold, status) VALUES ('Fremder', 2, '?', '?', 0, '?')
 +OK Weiter
 +
 +Finde deine bewohnernr heraus! (Tipp: Der * in den vorherigen Abfragen stand 
 +immer für "alle Spalten". Stattdessen kannst du aber auch eine oder mehrere 
 +mit Komma getrennte Spaltennamen angeben.
 +
 +> select bewohnernr from bewohner where name="Fremder";
 +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, die niemandem gehören. 
 +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 = 'Kaffeetasse'
 +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, die wir haben!
 +
 +> 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)
 +
 +</pre></html>
 +
 +Wie geht die Geschichte weiter?...
 +
 +[[privat:SQL Island - Komplettlösung]]
 +===== Inhalte der Tabellen =====
 +
 +Die Inhalte der Tabellen.
 +
 +<html><pre>
 +DORF (dorfnr, name, haeuptling) 
 +BEWOHNER (bewohnernr, name, dorfnr, geschlecht, beruf, gold, status) 
 +GEGENSTAND (gegenstand, besitzer) 
 +
 +> 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
 +
 +</pre></html>