Zur Haupt­na­vi­ga­ti­on sprin­gen [Alt]+[0] Zum Sei­ten­in­halt sprin­gen [Alt]+[1]

Ab­fra­gen mit meh­re­ren Ta­bel­len in SQL

Die SQL-An­wei­sung in Base ge­stal­tet sich nun kom­ple­xer.

SQL-Anweisung

Be­mer­kung: Die Punkt­no­ta­ti­on z.B. STADT.​sname bzw. FLUS­S_­STADT.fname ver­wen­det man, wenn meh­re­re Ta­bel­len be­nutzt wer­den, damit klar ist aus wel­cher Ta­bel­le ein Daten­feld stammt. Die Be­zeich­ner könn­ten in ver­schie­de­nen Ta­bel­len gleich sein. Z.B. hätte man statt fname in FLUSS und statt sname in Stadt ja auch je­weils name ver­wen­den kön­nen. Um Ver­wechs­lun­gen aus­zu­schlie­ßen, haben wir das nicht so ge­macht. So­weit es keine glei­chen Be­zeich­ner in ver­schie­de­nen Ta­bel­len gibt, kann auf die Punkt­no­ta­ti­on ver­zich­tet wer­den.

Die SQL-An­wei­sung ver­ein­facht ge­schrie­ben:

SQL-Anweisung

Bei kenn­zei­chen ist die Punkt­no­ta­ti­on also er­for­der­lich!

Wich­tig ist nun hier­bei, dass es in den zu ver­knüp­fen­den Ta­bel­len Da­ten­fel­der gibt, über die sich zu­sam­men­ge­hö­ri­ge Da­ten­sät­ze ver­bin­den las­sen. In der Auf­ga­be war das die Ei­gen­schaft kenn­zei­chen in den Ta­bel­len STADT und FLUS­S_­STADT.

Of­fen­sicht­lich sind ge­ra­de die Schlüs­sel ge­eig­net, diese Be­zie­hung zu lie­fern. Hier­bei wird ge­wis­ser­ma­ßen der Pfeil von einem Fremd­schlüs­sel der einen Ta­bel­le zum zu­ge­hö­ri­gen Pri­mär­schlüs­sel der an­de­ren Ta­bel­le er­zeugt.

Die Be­zie­hung wird in­ner­halb der WHERE-Klau­sel for­mu­liert und zwar durch Ver­gleich des Pri­mär- und Fremd­schlüs­sels der bei­den Ta­bel­len auf Gleich­heit.

Be­zie­hung: Ta­bel­le1.Pri­mär­schlüs­sel = Ta­bel­le2.Fremd­schlüs­sel.

Wenn zu­sätz­lich eine Se­lek­ti­on nötig ist, wird diese in­ner­halb der WHERE-Klau­sel mit AND ver­knüpft.

Wir er­wei­tern un­se­re S‑F‑W-Form der SELECT-An­wei­sung daher auf S‑F‑W‑A für SELECT ‑ FROM ‑ WHERE ‑ AND, wobei bei feh­len­der Se­lek­ti­ons­be­din­gung das A(nd) ent­fällt.

Als Syn­tax er­hal­ten wir damit:

SQL-Syntax

Die neuen Be­stand­tei­le sind fett ge­druckt.

Um diese SELECT-An­wei­sung zu­sam­men­zu­stel­len, geht man nach fol­gen­dem Re­zept vor:

  1. Wel­che Ta­bel­len sind be­tei­ligt um die er­for­der­li­chen Daten zu lie­fern? FROM ...
  2. Wel­che Da­ten­fel­der sol­len ge­wählt wer­den? SELECT ...
  3. Wie hei­ßen die Ver­bin­dun­gen zwi­schen den Ta­bel­len? WHERE ..
  4. Sind wei­te­re Be­din­gun­gen zu for­mu­lie­ren? AND …

 

 

Hin­ter­grund­in­for­ma­tio­nen: Her­un­ter­la­den [odt][296 KB]

 

Wei­ter zu Da­ten­kon­sis­tenz