changequote(`{{', `}}') include({{../common.m4}}) # Practicum 2 q_with_test(1) q_with_test(2) ## Opdracht 3 ![](img_erd.svg) ![](img_strokendiagram.svg) q_with_output(4) q_with_output(5) q_with_test(6) q_with_output(7) q_with_test(8) q_with_output(9) q_with_output(10) q_with_output(11) Een union voegt de *rijen* van twee `select` statements samen, terwijl een join tabel*kolommen* samenvoegt met behulp van overeenkomende waardes. ## Opdracht 12 `group by` haalt rijen weg afhankelijk van welke rijen de zelfde waardes hebben in de doorgegeven kolommen. ## Opdracht 13 `having` werkt het zelfde als `where`, maar `where` filtert vòòr `group by`, terwijl `having` ná `group by` filtert. ## Opdracht 14 Met subselects kun je het resultaat van een query gebruiken in een andere query. ## Opdracht 15 Een view slaat het resultaat op van een uitgevoerde query, zodat deze later gebruikt kan worden in andere query's. Het enige verschil tussen subselects en views is dat bij subselects de subquery elke keer wordt uitgevoerd. ## Opdracht 16 Als je tijdens een transaction de database hebt aangepast, en je tevreden bent over de aanpassingen gebruik je `commit`. Als je werkt op een live database is het handig om te wachten met committen tot een gepland onderhoudsmoment zodat gebruikers geen onverwachte uitvaltijd ervaren. ## Opdracht 17 Bij een enkelvoudige insert voeg je één rij toe aan een tabel, terwijl een meervoudige insert meer dan één rij in een keer toe voegt. ## Opdracht 18 ```sql delete from ; ``` Als je `delete from` geen `where` meegeeft verwijdert deze statement alle rijen uit een tabel.