Structured Query Language (SQL) - meerdere tabellen

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

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

time-iconLesson duration is: 50 min

Items in this lesson

Structured Query Language (SQL)

Slide 1 - Slide

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

Slide 2 - Slide

Slide 3 - Slide

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 question

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

Slide 5 - Open question

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

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

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

SELECT bestelregel.product_id
FROM bestelregel

Slide 8 - Slide

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

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 question

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

Slide 11 - Slide

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

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

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