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

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
 
(8 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
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:'''<br>
 
'''Schema:'''<br>
 
<br>
 
<br>
 
<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) ... ]<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>
  
 
</code>
 
</code>
 
<br>
 
<br>
 
+
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.<br>
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.
+
<br>
 +
'''Vereinfachtes Klassendiagramm:'''<br>
 +
[[Datei:Klassendiagramm_Zony_ausschnitt.png]]
  
 
'''Formuliere für nachfolgende Aufgaben die zugehörige SQL-Abfrage!''' <br>
 
'''Formuliere für nachfolgende Aufgaben die zugehörige SQL-Abfrage!''' <br>
  
1. Gib eine Übersicht über alle Bestellungen des Kunden "Hans Meier" (BestellNr, Bestelldatum) aus und sortiere das Ergebnis absteigend nach dem Bestelldatum.<br>
+
# Gib eine Übersicht über alle Bestellungen des Kunden "Hans Meier" (BestellNr, Bestelldatum) aus und sortiere das Ergebnis absteigend nach dem Bestelldatum.<br>
2. Gib die BestellNr der Bestellung aus, die am 05-08-2013 einging und als Position das Modell "audioStorm M320" beinhaltet.<br>
+
# Gib die BestellNr der Bestellung aus, die am 05-08-2013 einging (Bestelldatum) und als Position das Modell "audioStorm M320" beinhaltet.<br>
3. Wer (Name) bestellte das Modell "Brilliance V32" fünfmal?<br>
+
# Wer (Name) bestellte das Modell "Brilliance V32" fünfmal?<br>
4. Welcher Kunde (KundenNr, Name) hat seine Bestellung noch nicht bezahlt?<br>
+
# Welcher Kunde (KundenNr, Name) hat seine Bestellung noch nicht bezahlt?<br>
5. Wann (BestellNr, Bestelldatum) wurden jeweils Produkte der Kategorie "Music" bestellt?<br>
+
# Wann (BestellNr, Bestelldatum) wurden jeweils Produkte der Kategorie "Music" bestellt?<br>
6. Gib den Namen der Kategorie aus zu der das Modell "Professional X1200" gehört.<br>
+
# Gib den Namen der Kategorie aus zu der das Modell "Professional X1200" gehört.<br>

Aktuelle Version vom 28. April 2014, 07:16 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 (Bestelldatum) 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.