faecher:informatik:oberstufe:datenbanken:joins: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
faecher:informatik:oberstufe:datenbanken:joins:start [26.11.2020 08:37] – [Aufgaben] sbelfaecher:informatik:oberstufe:datenbanken:joins:start [21.03.2025 07:01] (aktuell) – [Abfragen über mehrere Tabellen] Frank Schiebel
Zeile 1: Zeile 1:
 ====== SQL-Joins   - Grundlagen====== ====== SQL-Joins   - Grundlagen======
  
-Wie werden die Tabellen (und Entitäten) jetzt aber mit SQL Abfragen verbunden, so das die gewünschten "zusammengesetzten" Informationen als Ergebnis der Abfrage vorliegen?+Wie werden die Tabellen (und Entitäten) jetzt aber mit SQL Abfragen verbunden, so dass die gewünschten "zusammengesetzten" Informationen als Ergebnis der Abfrage vorliegen?
  
 ===== Abfragen über mehrere Tabellen ===== ===== Abfragen über mehrere Tabellen =====
  
-Bei Abfragen aus mehreren Tabellen wird ohne weitere Bedingung die Besziehung zwischen den Entitäten nicht berücksichtigt - es werden einfach alle Kombinationen aller Datensätze der beiden Tabellen gebildet und ausgegeben((Das kartesische Produkt der Tabellen)). Die meisten der so aggregierten Datensätze sind sinnfrei. +Bei Abfragen aus mehreren Tabellen wird ohne weitere Bedingung die Beziehung zwischen den Entitäten nicht berücksichtigt - es werden einfach alle Kombinationen aller Datensätze der beiden Tabellen gebildet und ausgegeben((Das kartesische Produkt der Tabellen)). Die meisten der so aggregierten Datensätze sind sinnfrei. 
  
 Beipiel: Die Tabelle ''lehrer'' hat 6 Datensätze, die Tabelle ''schueler'' 12. Die Abfrage Beipiel: Die Tabelle ''lehrer'' hat 6 Datensätze, die Tabelle ''schueler'' 12. Die Abfrage
Zeile 13: Zeile 13:
 </code> </code>
  
-liefert als Ergebnis eine Tabelle mit 72 Datensätzen:+liefert als Ergebnis eine Tabelle mit ($6\cdot 12=$) 72 Datensätzen:
  
 {{ :faecher:informatik:oberstufe:datenbanken:joins:auswahl_081.png |}} {{ :faecher:informatik:oberstufe:datenbanken:joins:auswahl_081.png |}}
Zeile 39: Zeile 39:
 SELECT [DISTINCT] { spalten | * } SELECT [DISTINCT] { spalten | * }
 FROM tabelle1, tabelle2, ... FROM tabelle1, tabelle2, ...
-WHERE tabelle1.spalte1=tabelle2.spalte1, +WHERE tabelle1.spalte1=tabelle2.spalte1 AND 
-      tabelle1.spalte2=tabelle2.spalte2...+      tabelle1.spalte2=tabelle2.spalte2 AND ...
 </code> </code>
  
Zeile 48: Zeile 48:
 SELECT [DISTINCT] { spalten | * } SELECT [DISTINCT] { spalten | * }
 FROM tabelle1 AS t1, tabelle2 AS t2, ... FROM tabelle1 AS t1, tabelle2 AS t2, ...
-WHERE t1.spalte1=t2.spalte1,t1.spalte2=t2.spalte2...+WHERE t1.spalte1=t2.spalte1 AND t1.spalte2=t2.spalte2 AND ...
 </code> </code>
  
-Das Ergebnis eines Joins ist eine Tabelle mit allen Spalten, die in der SQL-Klausuel angegeben wurden. Die Spaltenbezeichnung muss eindeutig sein. Enthalten die Tabellen ''tabelle1'' und ''tabelle2'' gleichnamige Spalten wie ''id'', muss die Spalte mit ''tabelle1.id'' eindeutig benannt sein.+Das Ergebnis eines Joins ist eine Tabelle mit allen Spalten, die in der SQL-Klausel angegeben wurden. Die Spaltenbezeichnung muss eindeutig sein. Enthalten die Tabellen ''tabelle1'' und ''tabelle2'' gleichnamige Spalten wie ''id'', muss die Spalte mit ''tabelle1.id'' eindeutig benannt sein.
  
 Wird keine WHERE-Bedingung angegeben, wird das Kreuzprodukt der Tabellen gebildet, d.h. jeder Datensatz einer Tabelle wird mit jedem der anderen Tabelle(n) kombiniert. Wird keine WHERE-Bedingung angegeben, wird das Kreuzprodukt der Tabellen gebildet, d.h. jeder Datensatz einer Tabelle wird mit jedem der anderen Tabelle(n) kombiniert.
Zeile 71: Zeile 71:
 </code> </code>
  
-===== Aufgaben =====+
 ---- ----
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
Zeile 84: Zeile 84:
   - Gib die Liste aller Kundennummern zusammen mit den Namen der Artikel, die unter dieser Nummer bestellt wurden, aus.   - Gib die Liste aller Kundennummern zusammen mit den Namen der Artikel, die unter dieser Nummer bestellt wurden, aus.
   - Gib alle  Zeitpunkte aus, zu denen Thomas Tischler Artikel im Webshop bestellt hat.   - Gib alle  Zeitpunkte aus, zu denen Thomas Tischler Artikel im Webshop bestellt hat.
-  - Gib Sie die Namen aller Artikel aus, die Maximilian Mayer bestellt hat.+  - Gib die Namen aller Artikel aus, die Maximilian Mayer bestellt hat.
   - Gib die Namen aller Kunden aus, die mindestens einmal einen Artikel bestellt haben, absteigend sortiert nach dem Datum der letzten Bestellung.   - Gib die Namen aller Kunden aus, die mindestens einmal einen Artikel bestellt haben, absteigend sortiert nach dem Datum der letzten Bestellung.
   - Gib pro Kunde aus, wie viele Artikel er insgesamt bestellt hat. Die Liste soll absteigend sortiert nach der Anzahl der Bestellungen ausgegeben werden.   - Gib pro Kunde aus, wie viele Artikel er insgesamt bestellt hat. Die Liste soll absteigend sortiert nach der Anzahl der Bestellungen ausgegeben werden.
Zeile 92: Zeile 92:
   - Zusatzaufgabe: Gib die Liste aller Kunden aus, die noch nie einen Artikel im Webshop bestellt haben.((Tipp: ''WHERE attribute NOT IN'' (SQL-Klausel). ))   - Zusatzaufgabe: Gib die Liste aller Kunden aus, die noch nie einen Artikel im Webshop bestellt haben.((Tipp: ''WHERE attribute NOT IN'' (SQL-Klausel). ))
  
-==== Material ==== +->  [[.:loseungen|Lösungsvorschläge]]
  
 +===== Material =====
  
 +{{simplefilelist>:faecher:informatik:oberstufe:datenbanken:joins:*}}
  • faecher/informatik/oberstufe/datenbanken/joins/start.1606379841.txt.gz
  • Zuletzt geändert: 26.11.2020 08:37
  • von sbel