Grundlagen der Datenbanken

Eine Kundentabelle (KundenID, Name) hat 4 Zeilen: (C1, Aoki), (C2, Inoue), (C3, Ueda), (C4, Eto). Eine Bestelltabelle (BestellID, KundenID, Betrag) hat 5 Zeilen: (O1, C1, 3000), (O2, C2, 8000), (O3, C1, 6000), (O4, C3, 2000), (O5, C2, 9000). Wie viele Zeilen liefert SELECT Name FROM Kunde WHERE KundenID IN (SELECT KundenID FROM Bestellung WHERE Betrag > 5000)?

  1. A1 Zeile
  2. B2 Zeilen
  3. C3 Zeilen
Antwort und Erläuterung anzeigen

Antwort: B. 2 Zeilen

Zuerst liefert die Unterabfrage (Subquery) in Klammern die KundenID der Bestellungen mit einem Betrag über 5000. Das sind O2 (C2), O3 (C1) und O5 (C2), die Menge der KundenID-Werte ist also C2, C1, C2. Die äußere Abfrage prüft für jede Zeile der Kundentabelle, ob deren KundenID in dieser Menge enthalten ist. Das trifft auf Aoki (C1) und Inoue (C2) zu; Inoue kommt in der Menge zwar zweimal vor, wird aber als eine Zeile der Kundentabelle nur einmal geliefert, das Ergebnis hat also 2 Zeilen. 3 Zeilen wäre die Anzahl, wenn für jede passende Bestellung eine Zeile entstünde, etwa wenn Kunden- und Bestelltabelle verbunden und dann nach Betrag gefiltert werden. 1 Zeile wäre die Anzahl, wenn man nur Kunden zählt, deren sämtliche Bestellungen über 5000 liegen (Inoue).

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Datenbanken

  1. Aus einer Kundentabelle (KundenID, Name) und einer Bestelltabelle (BestellID, KundenID, Betrag) sollen die Namen der Kunden ermittelt werden, die noch nie bestellt haben. Welche SQL-Anweisung ist richtig?
  2. Welche Aussage beschreibt einen View in einer relationalen Datenbank richtig?
  3. Was ist der Hauptzweck der Normalisierung von Tabellen in einer relationalen Datenbank?
  4. Der Primärschlüssel einer Auftragstabelle (AuftragsNr, ArtikelNr, Menge, KundenNr, Kundenname) ist {AuftragsNr, ArtikelNr}, und ihre funktionalen Abhängigkeiten sind {AuftragsNr, ArtikelNr} → Menge, AuftragsNr → KundenNr und KundenNr → Kundenname. Welches ist das richtige Ergebnis, wenn diese Tabelle bis zur dritten Normalform normalisiert wird?
  5. Der Primärschlüssel einer Mitarbeitertabelle (MitarbeiterNr, Name, Abteilungscode, Abteilungsname) ist MitarbeiterNr, und jede Spalte enthält nur einen einzigen Wert. Die funktionalen Abhängigkeiten sind MitarbeiterNr → Name, MitarbeiterNr → Abteilungscode und Abteilungscode → Abteilungsname. Welche Aussage über die Normalform dieser Tabelle ist richtig?