SQL & Databases Les 9

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

This lesson contains 23 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
  • JOINS
  • INNER JOIN
  • oefeningen

Slide 2 - Slide

het 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

Joins
  • (INNER) JOIN: Toont alle rijen met overeenkomende waarden in beide tabellen
  • LEFT (OUTER) JOIN: Toont alle rijen uit de linkertabel en de overeenkomende rijen uit de rechtertabel
  • RIGHT (OUTER) JOIN: Toont alle rijen uit de rechtertabel en de overeenkomende rijen uit de linkertabel
  • FULL (OUTER) JOIN: Toont alle rijen als er een overeenkomst is in de linker- of rechtertabel

Slide 4 - 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 5 - 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 6 - Slide

INNER JOIN
INNER JOIN selecteert alle rijen uit beide tabellen zolang er een overeenkomst is tussen de kolommen. Als er rijen zijn in de tabel "Bestelling" die geen overeenkomsten hebben in "Klant", worden deze bestellingen niet weergegeven!

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

query

Slide 9 - Open question

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

Slide 10 - Slide

resultaat

Slide 11 - 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 12 - 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 13 - Slide

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

Slide 14 - Open question

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

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

Maak de query van Pedro

Slide 17 - Open question

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

Slide 20 - Slide

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

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

Volgende les

  • Functies en keywords

Slide 23 - Slide