From b9199dff0e43429f1c739872c49e027b2d44b93d Mon Sep 17 00:00:00 2001 From: lonkaars Date: Tue, 4 Oct 2022 16:17:51 +0200 Subject: opdracht 2 beginsel --- opdracht-1/build | 7 +-- opdracht-2/build | 1 + opdracht-2/opdracht-2.m4 | 131 +++++++++++++++++++++++++++++++++++++++++++++++ opdracht-2/reset.sql | 0 render-opdracht | 12 +++++ 5 files changed, 145 insertions(+), 6 deletions(-) mode change 100755 => 120000 opdracht-1/build create mode 120000 opdracht-2/build create mode 100644 opdracht-2/opdracht-2.m4 create mode 100644 opdracht-2/reset.sql create mode 100755 render-opdracht diff --git a/opdracht-1/build b/opdracht-1/build deleted file mode 100755 index acbfb3d..0000000 --- a/opdracht-1/build +++ /dev/null @@ -1,6 +0,0 @@ -#!/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 diff --git a/opdracht-1/build b/opdracht-1/build new file mode 120000 index 0000000..1fb5c6e --- /dev/null +++ b/opdracht-1/build @@ -0,0 +1 @@ +../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' ' woont in de 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 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 -- cgit v1.2.3