Werkblad Databases & SQL met antwoorden

Gratis printbaar werkblad Databases & SQL: 8 opgaven van makkelijk tot tentamenniveau, met antwoordenblad. Print het of sla het op als pdf.

Nieuw werkbladOnline oefenen met hints

Voor docenten: gratis te printen, kopiëren en in de les te gebruiken. Elk nieuw werkblad heeft nieuwe waarden en een eigen antwoordblad. Een link naar ExamProblems op je cursuspagina wordt gewaardeerd.

Naam: ____________________   Datum: ____________

1.Makkelijk

Wat is een surrogaatsleutel (surrogate key)?

  1. AEen sleutel die is gemaakt van echte gegevens, zoals een e-mailadres
  2. BEen kunstmatige identificatie zonder zakelijke betekenis, zoals een auto-increment-id
  3. CEen sleutel die alleen in views wordt gebruikt
  4. DEen sleutel die naar een andere tabel verwijst
2.Makkelijk

Wat is een kandidaatsleutel (candidate key)?

  1. AEen minimale verzameling kolommen die elke rij uniek identificeert
  2. BEen kolom die erop wacht een vreemde sleutel te worden
  3. CElke kolom die NULL-waarden bevat
  4. DEen verzameling kolommen die twee tabellen delen om hun rijen te koppelen
3.Makkelijk

Welke clausule geeft in PostgreSQL en MySQL alleen de eerste 10 rijen van een resultaat terug?

  1. AFIRST 10 ONLY
  2. BLIMIT 10
  3. CMAX 10
  4. DTOP ROWS 10
4.Gemiddeld

Welke bewering over HAVING is juist?

  1. AHet kan niet samen met GROUP BY worden gebruikt
  2. BHet sorteert de resultaten
  3. CHet kan aggregatiefuncties gebruiken om groepen te filteren
  4. DHet moet in de SELECT-instructie vóór WHERE staan
5.Gemiddeld

Wat geeft SELECT COALESCE(phone, 'unknown') FROM customers terug voor een klant van wie phone NULL is?

  1. A'unknown'
  2. BEen fout
  3. CEen lege string
  4. DNULL
6.Gemiddeld

Welke query toont klanten die nooit een bestelling hebben geplaatst?

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  2. BSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  3. CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
7.Moeilijk

Een tabel heeft een miljoen rijen en een Booleaanse kolom is_active die voor 95% ervan TRUE is. Waarom kan de optimizer een index op is_active negeren voor WHERE is_active = TRUE?

  1. ATRUE wordt door de index als NULL behandeld
  2. BDe optimizer gebruikt nooit indexen in WHERE-clausules
  3. COp Booleaanse kolommen kunnen geen indexen worden gemaakt
  4. DDe meeste rijen voldoen, dus een volledige tabelscan is goedkoper dan veel index-lookups
8.Moeilijk

De tabel employee(emp_id, dept_id, dept_name) heeft de sleutel emp_id, en dept_id → dept_name. Welke uitspraak is juist?

  1. AZe staat niet in 2NF
  2. BZe staat in 2NF maar niet in 3NF
  3. CZe staat in BCNF en dus ook in 3NF
  4. DZe staat niet in 1NF

Antwoordenblad

  1. 1. B · Een kunstmatige identificatie zonder zakelijke betekenis, zoals een auto-increment-id
  2. 2. A · Een minimale verzameling kolommen die elke rij uniek identificeert
  3. 3. B · LIMIT 10
  4. 4. C · Het kan aggregatiefuncties gebruiken om groepen te filteren
  5. 5. A · 'unknown'
  6. 6. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  7. 7. D · De meeste rijen voldoen, dus een volledige tabelscan is goedkoper dan veel index-lookups
  8. 8. B · Ze staat in 2NF maar niet in 3NF

Volledige stapsgewijze oplossingen: oefen dit onderwerp op examproblems.com.