Laden Sie die Datenbank miniterra.db über diesen Link und speichern Sie die Datei auf Ihrem Laptop.
Die Datenbank enthält die folgenden Tabellen:
Sie sind wie folgt verbunden:
- [R] Erforschen Sie die Daten in SQLite Studio:
- Wie lautet das Länderkürzel (
LNR) der Schweiz? - Wie lautet das Kürzel des Kontinents (
KNR) von Europa? - Was ist der Anteil von Deutsch als Sprache in der Schweiz (in Tabelle «gesprochen»)?
- Wie lautet das Länderkürzel (
- [R] Versuchen Sie folgende Informationen mit SQL Befehlen abzufragen:
- Die Namen aller Orte in der Schweiz und deren Einwohnerzahl
- Die Namen aller Orte in Europa, absteigend sortiert nach deren Einwohner-Zahl
- Der Anteil der Einwohner der Hauptstädte jeden Landes zu dessen gesamt-Einwohnerzahl, absteigend sortiert
- Achtung: Einwohner steht im Land in Millionen, in Ort als ganze Zahl. Deswegen muss der Anteil so berechnet werden (Prozent):
round(ort.Einwohner * 100.0 / land.Einwohner/1000000,2)
- Achtung: Einwohner steht im Land in Millionen, in Ort als ganze Zahl. Deswegen muss der Anteil so berechnet werden (Prozent):
- Der Name aller Flüsse in Europa
- [C] Fügen Sie der Datenbank Münchenstein und die Birs hinzu:
- Münchenstein liegt in der Schweiz, im «Landesteil» Basel, hat 12’300 Einwohner, auf der Breite 47 und der Länge 8. Wählen Sie eine sinnvolle «
ONR» (Ortsnummer), die nicht schon anderweitig vergeben ist. Wie lautet der SQL Befehl, um diese Stadt einzufügen? - die Birs ist 75 Kilometer lang und mündet in den Rhein. Wie lautet der SQL Befehl, um den Wert für «
ZielFNR» zu finden, und jener, um den Fluss Birs hinzuzufügen?
- Münchenstein liegt in der Schweiz, im «Landesteil» Basel, hat 12’300 Einwohner, auf der Breite 47 und der Länge 8. Wählen Sie eine sinnvolle «
- [U] Stellen Sie sich vor, jemand würde einfach den Befehl erteilen, der «Golf von Mexiko» sollte neu «Golf von Amerika» genannt werden: Finden Sie diesen Gewässernamen in der Datenbank? Wenn Sie Ihn finden: wie lautet der SQL Befehl, um den Namen anzupassen?
- [D] Nun stellen wir uns vor, dass es eine Klimaveränderung gibt, die dazu führt, dass alle Nebenflüsse des Nils vollends versiegen: Entfernen Sie diese also alle aus der Datenbank. Wie lautet der SQL Befehl, um alle Nebenflüsse des Nils anzuzeigen? Was muss an diesem SQL Befehl verändert werden, um alle diese Nebenflüsse mit einem einzigen Befehl entfernt werden?
- In den obigen Trainingseinheiten steht jeweils vor der Frage ein Buchstabe in [eckigen Klammern]. Worauf bezieht sich dieser Buchstabe wohl?
Musterlösungen
- Antworten:
- CH
- EU
- 65%
- Antworten:
- SQL Befehl:
select Name, Einwohner
from ort
where LNR = "CH" - SQL Befehl:
select ort.Name as Stadt, land.Name as Land, ort.Einwohner
from ort, land
where KNR = "EU" and
ort.LNR = land.LNR
order by ort.Einwohner DESC - SQL Befehl:
select
ort.Name as Stadt,
land.Name as Land,
round(ort.Einwohner * 100.0 / land.Einwohner/1000000,2) as Anteil
from ort, land
where
ort.ONR = land.HauptONR
order by Anteil DESC - SQL Befehl:
select distinct fluss.Name as Fluss
from fluss, stadtfluss, ort, land
where
fluss.FNR = stadtfluss.FNR
and stadtfluss.ONR = ort.ONR
and ort.LNR = land.LNR
and land.KNR = "EU"
order by fluss.Name ASC
- SQL Befehl:
- Antworten:
- Die ONR darf höchstens 6 Zeichen enthalten und muss einmalig sein. z.B. «MNCSTN» würde gehen. Dann lautet der Befehl:
insert into ort (ONR, Name, LNR, Landesteil, Einwohner, Breite, Laenge)
values ('MNCSTN', 'Münchenstein', 'CH', 'Basel', 12300, 47, 8) - Die ZielFNR muss die FNR des Rheins sein. Diese finden wir mit diesem SQL Befehl:
select * from fluss where Name = 'Rhein'
Die FNR hat 3 Buchstaben und muss einmalig sein – z.B. «BRS». Dann lautet der SQL Befehl zum einfügen der Birs:insert into fluss (FNR, Name, ZielFNR, Laenge)
values ('BRS', 'Birs', 'XYZ', 75)
(wobei XYZ mit der richtigen FNR ersetzt werden muss!)
- Die ONR darf höchstens 6 Zeichen enthalten und muss einmalig sein. z.B. «MNCSTN» würde gehen. Dann lautet der Befehl:
- Meere tauchen in der Datenbank im Datenfeld «Meer» der Tabelle «fluss» auf. Mit dem Befehl
select * from fluss where Meer = 'Golf von Mexiko'
tauchen tatsächlich die zwei Flüsse Mississippi River und Rio Grande auf. Es gibt nun verschiedene Wege, um diese zwei Einträge zu ändern. Ein Beispiel:update fluss set Meer = 'Golf von Amerika'
where Meer = 'Golf von Mexiko' - Alle Nebenflüsse des Nils f inden sich mit
select * from fluss where ZielFNR = 'NIL'
und um diese alle zu entfernen, muss nur das «select *» durch ein «delete» ersetzt werden:delete from fluss where ZielFNR = 'NIL' CRUD: alles, was mit elektronischen Daten gemacht werden kann:C: Create: erstellen, speichern, einfügenR: Retrieve/Read: abfragen, auslesen, lesenU: Update: anpassen, ändern, aktualisierenD: Delete: löschen, entfernen