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

Welke aggregatiefunctie telt rijen?

  1. AMAX
  2. BCOUNT
  3. CAVG
  4. DSUM
2.Makkelijk

Een klant kan veel bestellingen plaatsen, maar elke bestelling hoort bij precies één klant. Welk type relatie is dit?

  1. AEen-op-een
  2. BVeel-op-veel
  3. CNul-op-nul
  4. DEen-op-veel
3.Makkelijk

Welke instructie voegt een nieuwe kolom toe aan een bestaande tabel?

  1. AUPDATE TABLE
  2. BALTER TABLE
  3. CCREATE COLUMN
  4. DINSERT COLUMN
4.Gemiddeld

Welke ACID-eigenschap betekent dat gelijktijdige transacties elkaars onvoltooide wijzigingen niet zien?

  1. ADuurzaamheid (durability)
  2. BAtomiciteit (atomicity)
  3. CBeschikbaarheid (availability)
  4. DIsolatie (isolation)
5.Gemiddeld

Welke query geeft het aantal verschillende steden in de tabel customers?

  1. ASELECT SUM(DISTINCT city) FROM customers
  2. BSELECT DISTINCT COUNT(city) FROM customers
  3. CSELECT COUNT(city) FROM customers GROUP BY city
  4. DSELECT COUNT(DISTINCT city) FROM customers
6.Gemiddeld

Waarom mislukt SELECT price * 2 AS double_price FROM t WHERE double_price > 10 in de meeste databases?

  1. AAliassen mogen geen underscore bevatten
  2. BWHERE kan alleen tekstkolommen vergelijken
  3. CWHERE wordt vóór de SELECT-lijst geëvalueerd, dus de alias bestaat nog niet
  4. DRekenen is niet toegestaan in de SELECT-lijst
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. ADe meeste rijen voldoen, dus een volledige tabelscan is goedkoper dan veel index-lookups
  2. BTRUE wordt door de index als NULL behandeld
  3. CDe optimizer gebruikt nooit indexen in WHERE-clausules
  4. DOp Booleaanse kolommen kunnen geen indexen worden gemaakt
8.Moeilijk

Waarom is SELECT dept, name, COUNT(*) FROM emp GROUP BY dept ongeldig in standaard-SQL?

  1. Adept moet binnen een aggregatiefunctie staan
  2. BCOUNT(*) kan niet samen met GROUP BY worden gebruikt
  3. Cname is niet gegroepeerd en niet geaggregeerd, dus het heeft geen enkele waarde per groep
  4. DGROUP BY moet alle kolommen van de tabel opsommen

Antwoordenblad

  1. 1. B · COUNT
  2. 2. D · Een-op-veel
  3. 3. B · ALTER TABLE
  4. 4. D · Isolatie (isolation)
  5. 5. D · SELECT COUNT(DISTINCT city) FROM customers
  6. 6. C · WHERE wordt vóór de SELECT-lijst geëvalueerd, dus de alias bestaat nog niet
  7. 7. A · De meeste rijen voldoen, dus een volledige tabelscan is goedkoper dan veel index-lookups
  8. 8. C · name is niet gegroepeerd en niet geaggregeerd, dus het heeft geen enkele waarde per groep

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