SQL & Databases Les 8

1 / 19
next
Slide 1: Slide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 5

This lesson contains 19 slides, with interactive quizzes and text slides.

time-iconLesson duration is: 50 min

Items in this lesson

Slide 1 - Slide

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

Slide 2 - Slide

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 - Slide

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 - Slide

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

Slide 5 - Slide

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 - Slide

resultaat

Slide 7 - Slide

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 - Slide

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 question

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

Slide 10 - Slide

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

Slide 11 - Open question

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

Slide 12 - Slide

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 - Slide

Slide 14 - Slide

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 - Slide

Slide 16 - Slide

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

Slide 17 - Open question

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 - Slide

Volgende les

  • Functies en keywords

Slide 19 - Slide