SQL & Databases Les 8

1 / 19
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 5

In deze les zitten 19 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 50 min

Onderdelen in deze les

Slide 1 - Tekstslide

Vandaag
  • het koppelen van tabellen
  • primary en foreign keys
  • Entiteitsintegriteitsregel
  • redundantie
  • Entity Relationship Diagram

Slide 2 - Tekstslide

Raadplegen van meer dan één tabel
Het komt vaak voor dat in een query gegevens uit meerdere tabellen worden geselecteerd. Het is alleen mogelijk om gegevens uit meerdere tabellen te selecteren, als de primaire en vreemde sleutels van die tabellen met elkaar overeenkomen. Kort samengevat: je kunt tabellen alleen aan elkaar koppelen, als beide tabellen een gemeenschappelijke kolom hebben.

Slide 3 - Tekstslide

voorbeeld
Daniël heeft al een aantal keer besteld bij het restaurant. In de app kan hij zijn bestelgeschiedenis zien. Voor dit overzicht worden er twee tabellen aan elkaar gekoppeld. In de tabel met klantgegevens staan zijn eigen gegevens en in de tabel bestelling staan zijn bestellingen.

Slide 4 - Tekstslide

De query die voor de bestelgeschiedenis gebruikt wordt, zou kunnen zijn:

Slide 5 - Tekstslide

Met het SQL-statement INNER JOIN kun je een extra tabel bij de SQL-query betrekken. Deze extra tabel 'koppel' je op basis van de primaire en vreemde sleutel in beide tabellen (ON in de SQL-query). Je kunt meerdere extra tabellen bij het resultaat betrekken, zolang de primaire en vreemde sleutels maar overeenkomen.

Slide 6 - Tekstslide

resultaat

Slide 7 - Tekstslide

Zowel in de tabel klant als in de tabel bestelling is een kolom met de naam id. Stel dat je één van deze kolommen wilt selecteren bij SELECT of gebruiken in een WHERE-voorwaarde. Dan moet je opgeven uit welke tabel die kolom komt. Tussen de tabelnaam en de kolomnaam plaats je een punt(.).

Slide 8 - Tekstslide

Geef een overzicht van de bestelnummers en datum/tijdstippen van de bestellingen die gedaan zijn door de klant met het e-mailadres "fiorella_hoekstra@gomail.nl".

Slide 9 - Open vraag

SELECT bestelling.id, datum, tijd
FROM klant
INNER JOIN bestelling ON bestelling.klant_id = klant.id
WHERE emailadres = "fiorella_hoekstra@gomail.nl"

Slide 10 - Tekstslide

Geef een overzicht van de bestelnummers van de bestellingen waarbij er 'Apple Slices' zijn besteld.

Slide 11 - Open vraag

SELECT bestelling_id
FROM product
INNER JOIN bestelregel ON bestelregel.product_id = product.id
WHERE naam = "Apple Slices"

Slide 12 - Tekstslide

Voorbeeld
Pedro werkt in de keuken van het restaurant. Hij wil de bestelling met nummer 47 klaar gaan maken. Hij moet dan weten welke producten en aantallen er bij deze bestelling horen.

Slide 13 - Tekstslide

Slide 14 - Tekstslide

Met dit overzicht kan Pedro nog niet veel. Aan alleen productnummers heeft hij niets. Er moet nog een tabel bij het overzicht betrokken worden, namelijk de tabel product. In de tabel bestelregel staat de kolom product_id, dit is ook een vreemde sleutel. De bijbehorende primaire sleutel is de kolom id in de tabel product. De tabel bestelregel kan dus gekoppeld worden aan de tabel product.

Slide 15 - Tekstslide

Slide 16 - Tekstslide

Geef een overzicht van de namen van alle producten die op 4 oktober 2014 zijn besteld.

Slide 17 - Open vraag

SELECT naam
FROM product
INNER JOIN bestelregel ON bestelregel.product_id = product.id
INNER JOIN bestelling ON bestelling.id = bestelregel.bestelling_id
WHERE datum = "2014-10-04"

Slide 18 - Tekstslide

Volgende les

  • Functies en keywords

Slide 19 - Tekstslide