faecher:informatik:oberstufe:datenbanken:joinsii:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
faecher:informatik:oberstufe:datenbanken:joinsii:start [24.11.2020 09:29] – [INNER JOIN] sbelfaecher:informatik:oberstufe:datenbanken:joinsii:start [01.12.2020 08:05] – [Aufgaben] sbel
Zeile 79: Zeile 79:
 ==== INNER JOIN ==== ==== 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. +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 {{ :faecher:informatik:oberstufe:datenbanken:joinsii:schule_klein_mit_ids.sql.zip |}} nach.
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +
 +=== (A2) ===
 +
 +  * Lösche zunächst die Tabellen ''schueler'' und ''lehrer'' und importiere die Datenbank {{ :faecher:informatik:oberstufe:datenbanken:joinsii:schule500_sus_keine_keys.zip |}} - diese hat mehr Lehrer und Schüler als die Datenbank aus dem vorigen Beispiel.
 +  * Versehe die Tabellen mit Primär und Fremdschlüsseln.
 +  * Skizziere ein ER Diagramm.
 +
 +Löse die folgenden Aufgaben mit Hilfe des kartesischen Produkts und mit einem INNER JOIN.
 +  * Erstelle eine Klassenliste der 10a
 +  * Erstelle eine Liste aller Schüler, die Feynman als Betreuer haben.
 +  * Wieviele Schüler befinden sich in der Jahrgangsstufe 6?
 +  * Wieviele Schüler haben einen Nachnamen der mit H beginnt.
 +  * Erstelle eine Liste aller Schüler, die in der Unterstufe sind und Salvador Dali als Betreuer haben.