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:07] – [RIGHT JOIN] sbelfaecher:informatik:oberstufe:datenbanken:joinsii:start [24.11.2020 09:45] – [INNER JOIN] 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 63: Zeile 63:
 {{ :faecher:informatik:oberstufe:datenbanken:joinsii:leftjoin03.png |}} {{ :faecher:informatik:oberstufe:datenbanken:joinsii:leftjoin03.png |}}
  
-===== RIGHT JOIN =====+===== Weitere Join-Statements ===== 
 + 
 +==== RIGHT JOIN ==== 
  
 Die Syntax von RIGHT JOIN entspricht der von LEFT JOIN. Der Unterschied ist, dass hier die Tabelle die im JOIN hinzugefügt wird als Basis für die Datensätze dient - gibt es keine Treffer, werden die Felder der mit FROM selektierten Tabelle mit NULL-Werten gefüllt: Die Syntax von RIGHT JOIN entspricht der von LEFT JOIN. Der Unterschied ist, dass hier die Tabelle die im JOIN hinzugefügt wird als Basis für die Datensätze dient - gibt es keine Treffer, werden die Felder der mit FROM selektierten Tabelle mit NULL-Werten gefüllt:
Zeile 73: Zeile 76:
  
 "Kartoffelchips" und "Schokocreme" haben keinen Klassenlehrer, diese werden mit NULL aufgefüllt. "Kartoffelchips" und "Schokocreme" haben keinen Klassenlehrer, diese werden mit NULL aufgefüllt.
 +
 +==== INNER JOIN ====
 +
 +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>
 +SELECT * FROM lehrer INNER JOIN schueler ON lehrer.id=schueler.KLID 
 +</code>
 +
 +{{ :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) ===
 +
  • faecher/informatik/oberstufe/datenbanken/joinsii/start.txt
  • Zuletzt geändert: 16.11.2023 11:48
  • von Svenja Müller