Zur Hauptnavigation springen [Alt]+[0] Zum Seiteninhalt springen [Alt]+[1]

Abfragen mit mehreren Tabellen in SQL

Die SQL-Anweisung in Base gestaltet sich nun komplexer.

SQL-Anweisung

Bemerkung: Die Punktnotation z.B. STADT.sname bzw. FLUSS_STADT.fname verwendet man, wenn mehrere Tabellen benutzt werden, damit klar ist aus welcher Tabelle ein Daten­feld stammt. Die Bezeichner könnten in verschiedenen Tabellen gleich sein. Z.B. hätte man statt fname in FLUSS und statt sname in Stadt ja auch jeweils name verwenden können. Um Verwechslungen auszuschließen, haben wir das nicht so gemacht. Soweit es keine gleichen Bezeichner in verschiedenen Tabellen gibt, kann auf die Punktnotation verzichtet werden.

Die SQL-Anweisung vereinfacht geschrieben:

SQL-Anweisung

Bei kennzeichen ist die Punktnotation also erforderlich!

Wichtig ist nun hierbei, dass es in den zu verknüpfenden Tabellen Datenfelder gibt, über die sich zusammengehörige Datensätze verbinden lassen. In der Aufgabe war das die Eigenschaft kennzeichen in den Tabellen STADT und FLUSS_STADT.

Offensichtlich sind gerade die Schlüssel geeignet, diese Beziehung zu liefern. Hierbei wird gewissermaßen der Pfeil von einem Fremdschlüssel der einen Tabelle zum zugehörigen Primärschlüssel der anderen Tabelle erzeugt.

Die Beziehung wird innerhalb der WHERE-Klausel formuliert und zwar durch Vergleich des Primär- und Fremdschlüssels der beiden Tabellen auf Gleichheit.

Beziehung: Tabelle1.Primärschlüssel = Tabelle2.Fremdschlüssel.

Wenn zusätzlich eine Selektion nötig ist, wird diese innerhalb der WHERE-Klausel mit AND verknüpft.

Wir erweitern unsere S‑F‑W-Form der SELECT-Anweisung daher auf S‑F‑W‑A für SELECT ‑ FROM ‑ WHERE ‑ AND, wobei bei fehlender Selektionsbedingung das A(nd) entfällt.

Als Syntax erhalten wir damit:

SQL-Syntax

Die neuen Bestandteile sind fett gedruckt.

Um diese SELECT-Anweisung zusammenzustellen, geht man nach folgendem Rezept vor:

  1. Welche Tabellen sind beteiligt um die erforderlichen Daten zu liefern? FROM ...
  2. Welche Datenfelder sollen gewählt werden? SELECT ...
  3. Wie heißen die Verbindungen zwischen den Tabellen? WHERE ..
  4. Sind weitere Bedingungen zu formulieren? AND …

 

 

Hintergrundinformationen: Herunterladen [odt][296 KB]

 

Weiter zu Datenkonsistenz