208 lines
5.8 KiB
JSON
208 lines
5.8 KiB
JSON
{
|
|
"training": "SQL met FitWorks",
|
|
"chapters": [
|
|
{
|
|
"title": "Hoofdstuk 4 - Basisqueries",
|
|
"pages": [
|
|
{
|
|
"title": "Terugblik en opening",
|
|
"blocks": [
|
|
{
|
|
"type": "text",
|
|
"summary": "Terugblik"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "Opening"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Leerdoelen",
|
|
"blocks": [
|
|
{
|
|
"type": "text",
|
|
"summary": "Leerdoelen"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "4.1 SELECT en FROM",
|
|
"blocks": [
|
|
{
|
|
"type": "text",
|
|
"summary": "De balie vraagt, de database antwoordt"
|
|
},
|
|
{
|
|
"type": "image",
|
|
"summary": "Anatomie van een SELECT-query"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "Alle kolommen tegelijk"
|
|
},
|
|
{
|
|
"type": "open-question",
|
|
"summary": "Je wilt de e-mailadressen en geboortedatums van alle leden zien. Welke query schrijf je?"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "4.2 WHERE",
|
|
"blocks": [
|
|
{
|
|
"type": "text",
|
|
"summary": "Filteren op voorwaarden"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "Vergelijkingsoperatoren"
|
|
},
|
|
{
|
|
"type": "image",
|
|
"summary": "WHERE-operatoren"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "Logische operators"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "Tekst en getallen"
|
|
},
|
|
{
|
|
"type": "open-question",
|
|
"summary": "Welke query schrijf je om trainers op locatie 1 te tonen die ook een specialisatie hebben opgegeven?"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "4.3 NULL",
|
|
"blocks": [
|
|
{
|
|
"type": "text",
|
|
"summary": "Een waarde die geen waarde is"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "Waarom werkt = NULL niet"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "De juiste aanpak"
|
|
},
|
|
{
|
|
"type": "image",
|
|
"summary": "NULL-afhandeling"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "Wat gaat er mis als je dit negeert"
|
|
},
|
|
{
|
|
"type": "open-question",
|
|
"summary": "Schrijf de query die alle lestypes toont waarvan de beschrijving niet is ingevuld."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "4.4 ORDER BY en DISTINCT",
|
|
"blocks": [
|
|
{
|
|
"type": "text",
|
|
"summary": "ORDER BY"
|
|
},
|
|
{
|
|
"type": "image",
|
|
"summary": "ORDER BY en DISTINCT"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "DISTINCT"
|
|
},
|
|
{
|
|
"type": "open-question",
|
|
"summary": "Welke query schrijf je om alle abonnementsnamen met maandprijs te tonen, gesorteerd van duurste naar goedkoopste? Wat verandert er als je DISTINCT toevoegt?"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "4.5 Kolomaliassen en literals",
|
|
"blocks": [
|
|
{
|
|
"type": "text",
|
|
"summary": "Kolomaliassen"
|
|
},
|
|
{
|
|
"type": "image",
|
|
"summary": "Aliassen en literals"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "Literals"
|
|
},
|
|
{
|
|
"type": "open-question",
|
|
"summary": "Schrijf een query die de naam en maandprijs van alle abonnementen toont, met als kolomkoppen Abonnementsnaam en Maandprijs. Sorteer op prijs, laagste eerst."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "4.6 CONCAT en CAST",
|
|
"blocks": [
|
|
{
|
|
"type": "text",
|
|
"summary": "CONCAT"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "CAST"
|
|
},
|
|
{
|
|
"type": "image",
|
|
"summary": "CONCAT en CAST"
|
|
},
|
|
{
|
|
"type": "table",
|
|
"summary": "Veelgebruikte CAST-conversies"
|
|
},
|
|
{
|
|
"type": "open-question",
|
|
"summary": "Schrijf een query die de volledige naam van elke trainer toont in een kolom genaamd Trainer."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Quiz",
|
|
"blocks": [
|
|
{
|
|
"type": "multiple-choice",
|
|
"summary": "Je wilt alle betalingen zien met status `mislukt` of `openstaand`, gesorteerd van hoog naar laag bedrag. Welke query is correct?"
|
|
},
|
|
{
|
|
"type": "multiple-choice",
|
|
"summary": "Welke query geeft correct alle leden terug die geen tussenvoegsel hebben?"
|
|
},
|
|
{
|
|
"type": "multiple-choice",
|
|
"summary": "Een collega ziet met `SELECT DISTINCT specialisatie, voornaam FROM trainers;` nog steeds herhaalde waarden in `specialisatie`. Wat is de oorzaak?"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "Samenvatting en vooruitblik",
|
|
"blocks": [
|
|
{
|
|
"type": "text",
|
|
"summary": "Samenvatting"
|
|
},
|
|
{
|
|
"type": "text",
|
|
"summary": "Vooruitblik"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |