aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2022-10-04 16:17:51 +0200
committerlonkaars <loek@pipeframe.xyz>2022-10-04 16:17:51 +0200
commitb9199dff0e43429f1c739872c49e027b2d44b93d (patch)
treee544e459d4a552589b64615aedd5324e3a82e5e6
parent045cd3cd1dccb0a87db5cca390db895b7a4876f4 (diff)
opdracht 2 beginsel
l---------[-rwxr-xr-x]opdracht-1/build7
l---------opdracht-2/build1
-rw-r--r--opdracht-2/opdracht-2.m4131
-rw-r--r--opdracht-2/reset.sql0
-rwxr-xr-xrender-opdracht12
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