Hier sind die ersten Schritte für das „SQL Island Adventure“.
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)
Wie geht die Geschichte weiter?…
Die Inhalte der Tabellen.
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