faecher:informatik:oberstufe:datenbanken:joins: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
faecher:informatik:oberstufe:datenbanken:joins:start [20.11.2019 21:07] – [Aufgaben] sbelfaecher:informatik:oberstufe:datenbanken:joins:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
-====== SQL-Joins ====== 
  
-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? 
- 
-===== Aufbau ===== 
- 
-Eine Klausel für SQL-Joins ist im Wesentlichen folgendermaßen aufgebaut: 
- 
-<code sql> 
-SELECT [DISTINCT] { spalten | * } 
-FROM tabelle1, tabelle2, ... 
-WHERE tabelle1.spalte1=tabelle2.spalte1, 
-      tabelle1.spalte2=tabelle2.spalte2, ... 
-</code> 
- 
-Um die Ausdtrücke abzukürzen, kann man Tabellen mit mit dem Schlüsselwort ''AS'' mit Aliasen bezeichnen: 
- 
-<code sql> 
-SELECT [DISTINCT] { spalten | * } 
-FROM tabelle1 AS t1, tabelle2 AS t2, ... 
-WHERE t1.spalte1=t2.spalte1,t1.spalte2=t2.spalte2, ... 
-</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. 
- 
-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. 
- 
-===== Beispiele ===== 
- 
-Ausgabe aller Kunden mit den Nummern ihrer bestellten Artikel 
-<code sql> 
-SELECT k.KNr, k.KVorname, k.KNachname, b.ANr 
-FROM   Kunden AS k, Bestellt AS b 
-WHERE  k.KNr=b.KNr 
-</code> 
- 
-Ausgabe aller Kunden mit den Namen ihrer bestellten Artikel 
-<code sql> 
-SELECT k.KNr, k.KVorname, k.KNachname, a.Name 
-FROM   Kunden AS k, Bestellt AS b, Artikel AS a 
-WHERE  k.KNr=b.KNr AND b.ANr=a.ANr 
-</code> 
- 
-===== Aufgaben ===== 
-  
-<WRAP center round box 95%> 
-**Aufgabe 1**\\ 
- 
-Sofern noch nicht geschehen: Importiere die Datenbank {{ :faecher:informatik:oberstufe:datenbanken:er_modelle_praxis:webshop.zip|webshop}} in deinen mysql-Datenbankbereich. 
- 
-Löse die folgenden Aufgaben innerhalb der Datenbank ''webshop'', indem du das SQL-Abfragefenster verwendest. Speichere deine Lösungen in einer Textdatei/deinem Infoheft. Vermeide die Ausgabe von Duplikaten. 
- 
-  - Gib die Liste mit den Namen aller jemals bestellen Artikel mitsamt ihres Bestelldatums 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 Sie 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 pro Kunde aus, wie viele Artikel er insgesamt bestellt hat. Die Liste soll absteigend sortiert nach der Anzahl der Bestellungen ausgegeben werden. 
-  - Gib die Namen der Artikel aus mitsamt der Information, wie oft sie insgesamt bestellt wurden. Die Liste soll absteigend sortiert nach der Anzahl der Bestellungen ausgegeben werden. 
-  -  Gib pro Kunde aus, wie viel Geld er insgesamt ausgegeben hat. 
-  - Gib die Nummern und Namen der Kundenpaare aus, die den gleichen Artikel bestellt haben. 
-  - Zusatzaufgabe: Gib die Liste aller Kunden aus, die noch nie einen Artikel im Webshop bestellt haben.((Tipp: ''WHERE attribute NOT IN'' (SQL-Klausel). )) 
-</WRAP> 
  • faecher/informatik/oberstufe/datenbanken/joins/start.1574280462.txt.gz
  • Zuletzt geändert: 20.11.2019 21:07
  • von sbel