i

Exkurs - Daten automatisch erzeugen

Für Experten - Daten automatisch einfügen

Vielleicht willst du gar nicht nur die (wenigen) Ozeane speichern, sondern zunächst die schon vorhandenen Einträge für die Meere übertragen. Das ist von Hand relativ mühsam und SQL kann dir dabei helfen:

Nachdem du wie im letzten Schritt eine Tabelle erzeugt hast, kannst du diese mit folgendem SQL-Befehl füllen lassen:

Datensätze automatisch füllen Datensätze automatisch füllen
INSERT INTO ozean (Name)
  SELECT DISTINCT Meer
     FROM fluss 
	WHERE Meer IS NOT NULL

Aufgabe 1

Probiere es aus und schaue dir das Ergebnis an.

Erkläre die einzelnen Zeilen!

Das Ergebnis sieht so aus:

Datensätze automatisch füllen - Ergebnis

Das bedeuten die Zeilen im SQL:

INSERT INTO ozean (Name)
  SELECT DISTINCT Meer
     FROM fluss 
	WHERE Meer IS NOT NULL
  1. INSERT... fügt neue Datensätze in die Tabelle ozean ein - und füllt hier nur das Attribut Name.
  2. SELECT... liest alle Datensätze (nur das Attribut Meer) ...
  3. ...aus der Tabelle fluss aus.
  4. WHERE... verhindert, dass auch Datensätze berücksichtigt werden, für das Meer gar nicht eingetragen ist.

Jeder Datensatz aus dem SELECT-Befehl wird damit automatisch in die ozean-Tabelle eingefügt.

Da das Attribut OZNR aus der Tabelle ozean nicht angegeben wird, füllt das Datenbanksystem automatisch Werte ein (Erinnere dich an die Anweisung "auto increment" für den Primärschlüssel).

Für Experten - Fremdschlüssel automatisch füllen

Ganz ähnlich wie das INSERT in SQL gibt es auch den Befehl UPDATE. Diesen kannst du dazu benutzen, das neue Fremdschlüssel-Attribut der fluss-Tabelle zu füllen:

Daten einfügen
  1. Mit einem SQL-Befehl wird das neue Attribut gefüllt.
  2. Ergebnis...

Klicke auf die einzelnen Schritte zur Veranschaulichung.

UPDATE fluss SET OZNR=
  (SELECT OZNR 
     FROM ozean 
	WHERE ozean.Name = fluss.Meer
  )

Suche

v
3.1.7.4
inf-schule.de/datenbanksysteme/terra/modellkritik/exkurs_db_browser3
inf-schule.de/3.1.7.4
inf-schule.de/@/page/OKaIgnCcGHAgjTcH

Rückmeldung geben