Basis van databases

De tabel Klant (KlantID, Naam) heeft vier rijen: (C1, Aoki), (C2, Inoue), (C3, Ueda), (C4, Eto). De tabel Bestelling (BestelID, KlantID, Bedrag) heeft vijf rijen: (O1, C1, 3000), (O2, C2, 8000), (O3, C1, 6000), (O4, C3, 2000), (O5, C2, 9000). Hoeveel rijen geeft SELECT Naam FROM Klant WHERE KlantID IN (SELECT KlantID FROM Bestelling WHERE Bedrag > 5000)?

  1. A1 rij
  2. B2 rijen
  3. C3 rijen
Antwoord en toelichting tonen

Antwoord: B. 2 rijen

Eerst geeft de subquery tussen haakjes de KlantID van de bestellingen met een bedrag van meer dan 5000. Dat zijn O2 (C2), O3 (C1) en O5 (C2), dus de verzameling waarden van KlantID is C2, C1, C2. De buitenste query gaat voor elke rij van de tabel Klant na of de KlantID in deze verzameling zit. Dat geldt voor Aoki (C1) en Inoue (C2), en hoewel Inoue twee keer in de verzameling voorkomt, wordt hij als één rij van de tabel Klant maar één keer teruggegeven, dus het resultaat heeft twee rijen. Drie rijen is het aantal als voor elke passende bestelling een rij zou ontstaan, zoals wanneer de tabellen Klant en Bestelling eerst worden gejoind en daarna op bedrag worden gefilterd. Eén rij is het aantal als alleen de klanten worden geteld van wie elke bestelling boven 5000 ligt (Inoue).

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van databases

  1. Uit de tabel Klant (KlantID, Naam) en de tabel Bestelling (BestelID, KlantID, Bedrag) moeten de namen worden opgevraagd van klanten die nog nooit iets hebben besteld. Welk SQL-statement is juist?
  2. Welke beschrijving van een view in een relationele database is juist?
  3. Wat is het belangrijkste doel van de normalisatie van tabellen in een relationele database?
  4. De primaire sleutel van de tabel Bestelling (BestelNr, ArtikelNr, Aantal, KlantNr, Klantnaam) is {BestelNr, ArtikelNr}, en de functionele afhankelijkheden zijn {BestelNr, ArtikelNr} → Aantal, BestelNr → KlantNr en KlantNr → Klantnaam. Wat is het juiste resultaat van de normalisatie van deze tabel tot de derde normaalvorm?
  5. De primaire sleutel van de tabel Medewerker (MedewerkerNr, Naam, Afdelingscode, Afdelingsnaam) is MedewerkerNr, en elke kolom bevat één waarde. De functionele afhankelijkheden zijn MedewerkerNr → Naam, MedewerkerNr → Afdelingscode en Afdelingscode → Afdelingsnaam. Welke uitspraak over de normaalvorm van deze tabel is juist?