Structured Query Language (SQL) - meerdere tabellen

Structured Query Language (SQL)
1 / 14
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4-6

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

time-iconLesduur is: 50 min

Onderdelen in deze les

Structured Query Language (SQL)

Slide 1 - Tekstslide

Leerdoel
Aan het eind van deze les kan je met behulp van SQL gegevens uit meerdere tabellen halen.

Slide 2 - Tekstslide

Slide 3 - Tekstslide

Hiernaast zie je de tabel klant. Geef de juiste SQL code om de naam van een klant op te vragen uit deze tabel.

Slide 4 - Open vraag

Hiernaast zie je de tabel bestelling. Geef de juiste SQL code om alle bestelregels op te vragen van klant_id = 11.

Slide 5 - Open vraag

Informatie halen uit meerdere tabellen
Het zoeken van informatie in één tabel is handig, maar bij een relationele database hebben diverse tabellen een relatie met elkaar. De relatie wordt gelegd met de vreemde sleutel.

Met een SQL query moet je dus kunnen zoeken in meer dan één tabel tegelijkertijd. Dit doe je met JOIN.

Slide 6 - Tekstslide

Voorbeeld
We willen de namen van de producten bij alle bestelregels. In de tabel bestelregel wordt van een product de product_id bijgehouden. Dit is een vreemde sleutel die verwijst naar het attribuut id in de tabel product.

Denk even goed na wat hierboven staat. Maak gebruik van de ERD.
ERD

Slide 7 - Tekstslide

Voorbeeld (vervolg)
Stap 1 is het ophalen van de product_id uit de tabel bestelregel.

SELECT bestelregel.product_id
FROM bestelregel

Slide 8 - Tekstslide

Voorbeeld (vervolg)
Stap 2 is het ophalen van de naam van het product uit de tabel product.

SELECT bestelregel.product_id, product.naam
FROM bestelregel
INNER JOIN product
ON product.id=bestelregel.product_id

Slide 9 - Tekstslide

Maak de SQL query die bij alle bestellingen de naam van de klant weergeeft. Kijk goed in het ERD en volg de relaties tussen de tabellen.

Slide 10 - Open vraag

Antwoord
SELECT bestelling.klant_id, klant.naam
FROM bestelling
INNER JOIN klant
ON klant.id=bestelling.klant_id

Slide 11 - Tekstslide

Nog een stapje verder...
Je wil vaak maar heel specifieke gegevens uit een database halen. Bijvoorbeeld de naam van alle producten die zijn besteld bij bestelling met id 11. Je moet dan nog een voorwaarde meegeven om alleen die gegevens te zien.

Slide 12 - Tekstslide

Nog een stapje verder...
Stap 1
Om de naam van alle bestelde producten van bestelling met nummer (id) 11 weer te geven hebben om te beginnen product_id nodig uit de tabel bestelregel. Met de product_id uit de tabel bestelregel kunnen we nu uit de tabel product de naam ophalen. We willen alleen de naam van de producten zien uit bestelling 11. Dus wel moeten nog een voorwaarde stellen dat dit dus alleen geldt voor bestelling_id 11.

Slide 13 - Tekstslide

Antwoord
SELECT bestelregel.product_id, product.naam
FROM bestelregel
INNER JOIN product
ON product.id=bestelregel.product_id
WHERE bestelregel.bestelling_id=11

Slide 14 - Tekstslide