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 doet GROUP BY in een query?
AZet rijen met dezelfde waarden in groepen, zodat aggregaten per groep worden berekend
BVerwijdert rijen met NULL-waarden
CKoppelt twee tabellen op hun gemeenschappelijke kolommen
DSorteert de rijen van het resultaat alfabetisch
2.Makkelijk
Wat is een kandidaatsleutel (candidate key)?
AEen minimale verzameling kolommen die elke rij uniek identificeert
BEen verzameling kolommen die twee tabellen delen om hun rijen te koppelen
CElke kolom die NULL-waarden bevat
DEen kolom die erop wacht een vreemde sleutel te worden
3.Makkelijk
Wat garandeert een UNIQUE-constraint op een kolom?
AGeen twee rijen hebben dezelfde niet-NULL-waarde in die kolom
BDe kolomwaarden zijn gesorteerd
CDe kolom wordt automatisch de primaire sleutel van de tabel
DDe kolom kan na het invoegen niet meer worden gewijzigd
4.Gemiddeld
Welke query geeft het aantal verschillende steden in de tabel customers?
ASELECT COUNT(city) FROM customers GROUP BY city
BSELECT SUM(DISTINCT city) FROM customers
CSELECT DISTINCT COUNT(city) FROM customers
DSELECT COUNT(DISTINCT city) FROM customers
5.Gemiddeld
Waarom kan een tabel maar één geclusterde index hebben?
ADe SQL-standaard verbiedt meer dan één index op een tabel
BDe rijen kunnen fysiek maar in één volgorde worden opgeslagen
CGeclusterde indexen kunnen alleen op de primaire sleutel liggen
DGeclusterde indexen gebruiken te veel geheugen
6.Gemiddeld
Een tabel heeft rijen waarin col NULL is. Welke rijen geeft WHERE col = NULL terug?
AAlle rijen van de tabel
BGeen rijen, omdat de vergelijking onbekend (UNKNOWN) is
CEen fout in elke database
DAlleen de rijen waarin col NULL is, net als bij IS NULL
7.Moeilijk
Wat geeft het volgende terug: SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)?
AAlleen de studenten met het hoogste cijfer
BHet gemiddelde cijfer van alle studenten
CStudenten met een cijfer boven het gemiddelde cijfer
DEen fout, omdat subqueries niet zijn toegestaan in WHERE
8.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?
ADe meeste rijen voldoen, dus een volledige tabelscan is goedkoper dan veel index-lookups
BOp Booleaanse kolommen kunnen geen indexen worden gemaakt
CTRUE wordt door de index als NULL behandeld
DDe optimizer gebruikt nooit indexen in WHERE-clausules
Antwoordenblad
1. A · Zet rijen met dezelfde waarden in groepen, zodat aggregaten per groep worden berekend
2. A · Een minimale verzameling kolommen die elke rij uniek identificeert
3. A · Geen twee rijen hebben dezelfde niet-NULL-waarde in die kolom
4. D · SELECT COUNT(DISTINCT city) FROM customers
5. B · De rijen kunnen fysiek maar in één volgorde worden opgeslagen
6. B · Geen rijen, omdat de vergelijking onbekend (UNKNOWN) is
7. C · Studenten met een cijfer boven het gemiddelde cijfer
8. A · De meeste rijen voldoen, dus een volledige tabelscan is goedkoper dan veel index-lookups
Volledige stapsgewijze oplossingen: oefen dit onderwerp op examproblems.com.