diff options
l---------[-rwxr-xr-x] | opdracht-1/build | 7 | ||||
l--------- | opdracht-2/build | 1 | ||||
-rw-r--r-- | opdracht-2/opdracht-2.m4 | 131 | ||||
-rw-r--r-- | opdracht-2/reset.sql | 0 | ||||
-rwxr-xr-x | render-opdracht | 12 |
5 files changed, 145 insertions, 6 deletions
diff --git a/opdracht-1/build b/opdracht-1/build index acbfb3d..1fb5c6e 100755..120000 --- a/opdracht-1/build +++ b/opdracht-1/build @@ -1,6 +1 @@ -#!/bin/bash -cat reset.sql q*.sql | mysql -u root mysql -for file in t*.sql; do - mysql -Hu root mysql < "$file" &> "${file/%.sql}.md" -done -m4 opdracht-1.m4 > opdracht-1.md +../render-opdracht
\ No newline at end of file diff --git a/opdracht-2/build b/opdracht-2/build new file mode 120000 index 0000000..1fb5c6e --- /dev/null +++ b/opdracht-2/build @@ -0,0 +1 @@ +../render-opdracht
\ No newline at end of file diff --git a/opdracht-2/opdracht-2.m4 b/opdracht-2/opdracht-2.m4 new file mode 100644 index 0000000..59a0106 --- /dev/null +++ b/opdracht-2/opdracht-2.m4 @@ -0,0 +1,131 @@ +changequote(`{{', `}}') + +define({{include_sql}}, {{ +```sql +include({{$1.sql}}) +``` +}}) + +define({{q_norm}}, {{ +## Opdracht $1 + +Query: +include_sql({{q$1}}) +}}) + +define({{q_with_output}}, {{ +## Opdracht $1 + +Query: +include_sql({{t$1}}) + +Output: +include({{t$1.md}}) +}}) + +define({{q_with_test}}, {{ +q_norm($1) + +Test query: +include_sql({{t$1}}) + +Output: +include({{t$1.md}}) +}}) + +# Practicum 1 + +## Opdracht 1 + +> Voeg de volgende kolommen aan de database toe en zet er zinvolle data in: +> - Woonplaats -> Voeg toe aan tabel tblKlant +> - Leverdatum -> Voeg toe aan tabel tblOrder +> - Voorraad -> Voeg toe aan tabel tblProduct + +## Opdracht 2 + +> Maak een tabel 'status' met de volgende waarden: +> - 'Nog te leveren' +> - 'Opgehaald door transporteur' +> - 'Afgemeld door bezorger' +> - 'Onbekend' + +## Opdracht 3 + +> Voordat je bovenstaande gaat doen (als het goed is zou je deze conclusie zelf +> ook al hebben getrokken, ga je eerst je ontwerp aanpassen. +> - Pas het ontwerp: ERD en strokendiagram aan. + +## Opdracht 4 + +> Maak een query van de tabel product waarbij alle kolomkoppen een logische +> 'Aliasnaam' krijgen. + +## Opdracht 5 + +> Maak een query waarbij de volgende output verschijnt: +> - 'De klant' <Naam> ' woont in de plaats:' <plaats> + +## Opdracht 6 + +> Maak voor een willekeurige klant een query aan die de totaalprijs laat zien van +> het aantal producten wat binnen 1 order is besteld in Euro's. Waarbij minimaal +> de volgende producten/aantallen voorkomen in de order: +> product 1, 3 stuks +> product 2, 5 stuks +> product 3, 2 stuks +> Tip: zet de rekensom in de formule van de query. + +## Opdracht 7 + +> Rond de uitkomst van de hiervoor gemaakte query af op hele Euro's. + +## Opdracht 8 + +> Maak een query die van de orderlijst uitsluitend de orders laat zien die de +> status 'nog te leveren' hebben. + +## Opdracht 9 + +> Maak een query die alle klantgegevens laat zien voor alle orders die status +> 'nog te leveren' hebben. + +## Opdracht 10 + +> Maak een query waarbij alle artikelprijzen met 10% worden verhoogd. +> In de query toon je de oorspronkelijke prijs en de nieuwe prijs. +> (de nieuwe prijs wordt alleen getoond, niet opgeslagen in de database). + +## Opdracht 11 + +> Wat is het verschil tussen een join en een union, toon dit aan middels een +> sprekend voorbeeld? + +## Opdracht 12 + +> Wat doet de 'group by' functie? + +## Opdracht 13 + +> Wat is het effect van 'having'? + +## Opdracht 14 + +> Wat is het doel van subselects? + +## Opdracht 15 + +> Wat is een view? + +## Opdracht 16 + +> Leg uit wat een 'commitmoment' is + +## Opdracht 17 + +> Wat is het verschil tussen een enkelvoudige en meervoudige insert? + +## Opdracht 18 + +> Met welke instructie verwijder je alle records uit een tabel? + diff --git a/opdracht-2/reset.sql b/opdracht-2/reset.sql new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/opdracht-2/reset.sql diff --git a/render-opdracht b/render-opdracht new file mode 100755 index 0000000..cc4fa48 --- /dev/null +++ b/render-opdracht @@ -0,0 +1,12 @@ +#!/bin/bash +bye () { + echo "run me as root!" + exit 1 +} + +[ $(id -g) -ne 0 ] && bye +cat reset.sql q*.sql | mysql -u root mysql +for file in t*.sql; do + mysql -Hu root mysql < "$file" &> "${file/%.sql}.md" +done +m4 `basename $PWD`.m4 > `basename $PWD`.md |