SQL-Abfragen über mehrere Tabellen II: Unterschied zwischen den Versionen

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
Zeile 5: Zeile 5:
 
<code>
 
<code>
 
KUNDE [ <span style="text-decoration: underline;">KundenNr</span> : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Geschlecht : VARCHAR(20) ; Adresse : VARCHAR(100) ; TelefonNr : VARCHAR(100) E-Mail : VARCHAR(100) ]<br>
 
KUNDE [ <span style="text-decoration: underline;">KundenNr</span> : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Geschlecht : VARCHAR(20) ; Adresse : VARCHAR(100) ; TelefonNr : VARCHAR(100) E-Mail : VARCHAR(100) ]<br>
BESTELLUNG [ <span style="text-decoration: underline;">BestellNr</span> : INT ; Bestelldatum : DATE ; Lieferdatum : DATE ; bezahlt : BOOLEAN ; <span style="text-decoration: overline;">KundenNr</span> : INT]<br>
+
BESTELLUNG [ <span style="text-decoration: underline;">BestellNr</span> : INT ; Bestelldatum : DATE ; Lieferdatum : DATE ; bezahlt : BOOLEAN ; <span style="text-decoration: overline;">Kunde</span> : INT]<br>
PRODUKT [ <span style="text-decoration: underline;">ProduktNr</span> : INT ; <span style="text-decoration: overline;">KategorieNr</span> : INT ; Typ : VARCHAR(100) ; Modellname : VARCHAR(100) ; Preis : DECIMAL(10,2) ]<br>
+
PRODUKT [ <span style="text-decoration: underline;">ProduktNr</span> : INT ; <span style="text-decoration: overline;">Kategorie</span> : INT ; Typ : VARCHAR(100) ; Modellname : VARCHAR(100) ; Preis : DECIMAL(10,2) ]<br>
 
KATEGORIE [ <span style="text-decoration: underline;">KategorieNr</span> : INT ; Name : VARCHAR(100) ; <span style="text-decoration: overline;">Verantwortlich</span> : INT ]<br>
 
KATEGORIE [ <span style="text-decoration: underline;">KategorieNr</span> : INT ; Name : VARCHAR(100) ; <span style="text-decoration: overline;">Verantwortlich</span> : INT ]<br>
hat_Position [ <span style="text-decoration: underline overline;">BestellNr</span> : INT ; <span style="text-decoration: underline overline;">ProduktNr</span> : INT ; Menge : INT ] <br>
+
hat_Position [ <span style="text-decoration: underline overline;">Bestellung</span> : INT ; <span style="text-decoration: underline overline;">Produkt</span> : INT ; Menge : INT ] <br>
 
PERSONAL [ <span style="text-decoration: underline;">ID</span> : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Geschlecht : VARCHAR(20) ; Adresse : VARCHAR(100) ; TelefonNr : VARCHAR(100) ; E-Mail : VARCHAR(100) ]<br>
 
PERSONAL [ <span style="text-decoration: underline;">ID</span> : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Geschlecht : VARCHAR(20) ; Adresse : VARCHAR(100) ; TelefonNr : VARCHAR(100) ; E-Mail : VARCHAR(100) ]<br>
  

Version vom 26. April 2014, 13:43 Uhr

Nachfolgend siehst du einen Ausschnitt aus der Datenbank des fiktiven Unternehmens "Zony", das sich auf die Produktion und den Vertrieb von digitalen Entertainment-Produkten spezialisiert hat.

Schema:

KUNDE [ KundenNr : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Geschlecht : VARCHAR(20) ; Adresse : VARCHAR(100) ; TelefonNr : VARCHAR(100) E-Mail : VARCHAR(100) ]
BESTELLUNG [ BestellNr : INT ; Bestelldatum : DATE ; Lieferdatum : DATE ; bezahlt : BOOLEAN ; Kunde : INT]
PRODUKT [ ProduktNr : INT ; Kategorie : INT ; Typ : VARCHAR(100) ; Modellname : VARCHAR(100) ; Preis : DECIMAL(10,2) ]
KATEGORIE [ KategorieNr : INT ; Name : VARCHAR(100) ; Verantwortlich : INT ]
hat_Position [ Bestellung : INT ; Produkt : INT ; Menge : INT ]
PERSONAL [ ID : INT ; Name : VARCHAR(100) ; GebDat : DATE ; Geschlecht : VARCHAR(20) ; Adresse : VARCHAR(100) ; TelefonNr : VARCHAR(100) ; E-Mail : VARCHAR(100) ]


Erklärung: Der Fremdschlüssel "Verantwortlich" in der Tabelle KATEGORIE verweist auf dem Primärschlüssel der Tabelle PERSONAL und gibt an, wer aus dem Personal für die Kundenbetreuung der jeweiligen Kategorie zuständig ist.

Vereinfachtes Klassendiagramm:
Klassendiagramm Zony ausschnitt.png

Formuliere für nachfolgende Aufgaben die zugehörige SQL-Abfrage!

1. Gib eine Übersicht über alle Bestellungen des Kunden "Hans Meier" (BestellNr, Bestelldatum) aus und sortiere das Ergebnis absteigend nach dem Bestelldatum.
2. Gib die BestellNr der Bestellung aus, die am 05-08-2013 einging und als Position das Modell "audioStorm M320" beinhaltet.
3. Wer (Name) bestellte das Modell "Brilliance V32" fünfmal?
4. Welcher Kunde (KundenNr, Name) hat seine Bestellung noch nicht bezahlt?
5. Wann (BestellNr, Bestelldatum) wurden jeweils Produkte der Kategorie "Music" bestellt?
6. Gib den Namen der Kategorie aus zu der das Modell "Professional X1200" gehört.