faecher:informatik:oberstufe:datenbanken:joinsii:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung
faecher:informatik:oberstufe:datenbanken:joinsii:start [23.11.2020 21:10] – [INNER JOIN] sbelfaecher:informatik:oberstufe:datenbanken:joinsii:start [24.11.2020 09:46] – [Aufgaben] sbel
Zeile 3: Zeile 3:
 Mit dem ''JOIN''-Statement lassen sich Werte aus mehreren Tabellen direkt kombinieren, ohne zunächst durch die Abfrage mehrerer Tabellen zunächst das Tabellenprodukt zu bilden und dieses anschliessend zu filtern. Mit dem ''JOIN''-Statement lassen sich Werte aus mehreren Tabellen direkt kombinieren, ohne zunächst durch die Abfrage mehrerer Tabellen zunächst das Tabellenprodukt zu bilden und dieses anschliessend zu filtern.
  
-Es wird aloso ein einzelnes Statement an das DMBS gesendet mit dem mehrere Tabellen zugleich abgefragt und direkt verknüpft werden - das Prinzip bleibt jedoch gleich, auch beim Einsatz des JOIN Statements müssen Primär- und  Fremdschlüsselspalten angegeben werden, damit eine sinnvolle Ergebnistabelle zurückgegeben wird.+Es wird also ein einzelnes Statement an das DMBS gesendet mit dem mehrere Tabellen zugleich abgefragt und direkt verknüpft werden - das Prinzip bleibt jedoch gleich, auch beim Einsatz des JOIN Statements müssen Primär- und  Fremdschlüsselspalten angegeben werden, damit eine sinnvolle Ergebnistabelle zurückgegeben wird.
  
-In MySQL stehen vier JOIN-Typen zur VerfügungLEFT JOIN, RIGHT JOIN, INNER JOIN und FULL JOIN.+In MySQL stehen mehrere JOIN-Typen zur Verfügung unter anderem LEFT JOIN, RIGHT JOIN, INNER JOIN.
  
 ===== LEFT JOIN ===== ===== LEFT JOIN =====
Zeile 79: Zeile 79:
 ==== INNER JOIN ==== ==== INNER JOIN ====
  
-Bei einem INNER JOIN muss eine passende Zeile in den Tabellen gefunden werden, Datebnsätze, die die JOIN-Bedingung nicht erfüllen werden nicht zurückgegeben. +Bei einem INNER JOIN muss eine passende Zeile in den Tabellen gefunden werden, Datensätze, die die JOIN-Bedingung nicht erfüllen werden nicht zurückgegeben. 
 <code sql> <code sql>
 SELECT * FROM lehrer INNER JOIN schueler ON lehrer.id=schueler.KLID  SELECT * FROM lehrer INNER JOIN schueler ON lehrer.id=schueler.KLID 
Zeile 86: Zeile 85:
  
 {{ :faecher:informatik:oberstufe:datenbanken:joinsii:innerj.png |}} {{ :faecher:informatik:oberstufe:datenbanken:joinsii:innerj.png |}}
 +
 +<wrap hi>Das entspricht unserer bisherigen Praxis, zunächst das kartesische Produkt aller beteiligten Tabellen abzufragen((Das geht übrigens mit einem "CROSS JOIN" auch, d.h. ''SELECT * FROM lehrer,schueler'' ist dasselbe wie ''SELECT * FROM lehrer CROSS JOIN schueler'')) und dann die passenden Datensätze mit WHERE herauszufiltern:</wrap>
 +
 +<code sql>
 +SELECT * FROM lehrer, schueler WHERE lehrer.id=schueler.KLID 
 +</code>
 +
 +===== Aufgaben =====
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A1) ===
 +
 +Vollziehe die Beispiele oben mit der Datenbank schule_klein nach.
  • faecher/informatik/oberstufe/datenbanken/joinsii/start.txt
  • Zuletzt geändert: 16.11.2023 11:48
  • von Svenja Müller