les 4 Tabellen combineren

Gebruik PC/laptop voor TEAMS
gebruik daarnaast je telefoon voor LessonUp!
1 / 25
next
Slide 1: Slide
InformaticaMiddelbare schoolhavoLeerjaar 4

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

time-iconLesson duration is: 30 min

Items in this lesson

Gebruik PC/laptop voor TEAMS
gebruik daarnaast je telefoon voor LessonUp!

Slide 1 - Slide

Vorige les
  • AND en OR en NOT
  • Gebruik van haakjes
  • LIKE met % en _
  • IN (...)
  • NULL waarden
  • Aliassen

Slide 2 - Slide

AND en OR combineren
SELECT naam
FROM leerlingen
WHERE afdeling = 'HAVO'
                 OR
                 afdeling = 'VWO'
                 AND
                  gebDat < #01-01-2002#;

Slide 3 - Slide

Waar moeten de haakjes staan?
A
WHERE (afdeling = 'HAVO' OR afdeling = 'VWO' AND gebDat < #01-01-2002#);
B
WHERE afdeling = 'HAVO' OR (afdeling = 'VWO' AND gebDat < #01-01-2002#);
C
WHERE (afdeling = 'HAVO' OR afdeling = 'VWO') AND gebDat < #01-01-2002#;
D
WHERE afdeling = ('HAVO' OR afdeling = 'VWO') AND gebDat < #01-01-2002#;

Slide 4 - Quiz

LIKE

WHERE naam LIKE 'Jan%'
WHERE naam LIKE 'Jan_'

Slide 5 - Slide

Hoe krijg ik records met de naam Jansen en Janssen maar zonder Jannesen?
A
WHERE naam LIKE 'Jan%sen'
B
WHERE naam LIKE 'Jan_sen'
C
WHERE naam LIKE 'Jan_en'
D
WHERE naam LIKE 'Jan%en'

Slide 6 - Quiz

IN
Meerdere mogelijkheden voor één veld
WHERE naam = 'Jan' or naam = 'Ciara' or naam = 'Sheila'

korter en duidelijker:
WHERE naam in ('Jan', 'Ciara', 'Sheila')

Slide 7 - Slide

Hoe zoek je de rekeningen met saldo 450, 750 en 490?
A
WHERE saldo IN (450, 750, 390)
B
WHERE saldo IN ('450', '750', '390')
C
WHERE saldo IN 450, 750, 390
D
WHERE saldo IN ('450, 750, 390')

Slide 8 - Quiz

Lege waarden
Als je zoekt naar een veld dat LEEG is
WHERE veld IS NULL
(LET OP: dus niet WHERE veld = NULL !!)

SELECT datum, rekening_bij 
FROM transactie
WHERE rekening_af IS NULL

Slide 9 - Slide

Aliassen
Een alias is een alternatieve naam voor een kolom.
Hiermee wordt duidelijker wat je met het resultaat bedoelt.

Voorbeeld:
SELECT rekening_bij AS 'Rekening waar geld bij komt'
FROM ... etc

Slide 10 - Slide

Slide 11 - Slide

BLOK G
Tabellen combineren

Slide 12 - Slide

Tabellen combineren 1
Vaak wil je gegevens uit 2 of meer tabellen in je resultaat
Of een voorwaarde toevoegen die uit een andere tabel komt

Voorbeeld uit de lesstof over Buurtvereniging
Kinderen en hun adres weergeven
MAAR: roepnaam en adres zitten in 2 tabellen!

Slide 13 - Slide

Tabellen combineren 2
SELECT roepnaam, naam, adres,
FROM leden, kinderen;

MAAR: Als je het zo doet worden ALLE records gecombineerd

DAAROM: je moet aangeven welke records bij elkaar horen!

Slide 14 - Slide

Tabellen combineren 3
Gebruik het veld dat beide tabellen aan elkaar koppelt

SELECT roepnaam, naam, adres
FROM leden, kinderen
WHERE leden.lidnr = kinderen.lidnr

Slide 15 - Slide

Tabellen combineren 4
Bij velden die in beide tabellen voorkomen moet je aangeven uit welke tabel je het wilt halen.
Dat geldt voor de SELECT en voor de WHERE!

SELECT roepnaam, naam, adres, leden.lidnr
FROM leden, kinderen
WHERE leden.lidnr = kinderen.lidnr

Slide 16 - Slide

Wat is hier fout?
SELECT roepnaam, naam, lidnr
FROM leden, kinderen
WHERE lidnr = lidnr

Slide 17 - Open question

Juiste query
SELECT roepnaam, naam, adres, leden.lidnr
FROM leden, kinderen
WHERE leden.lidnr = kinderen.lidnr

Slide 18 - Slide

Aliassen voor een tabel
Het is handig om voor een tabel een 'afkorting' te gebruiken als je meerdere tabellen nodig hebt.
De afkorting komt achter de tabelnaam

SELECT l.lidnr, roepnaam, naam, adres
FROM leden AS l, kinderen AS k
WHERE l.lidnr = k.lidnr

Slide 19 - Slide

Tabellen combineren 5
Extra voorwaarden in je query komen er gewoon achter
Bijvoorbeeld: alleen kinderen onder 10 jaar

SELECT roepnaam, naam, adres
FROM leden AS l, kinderen AS k
WHERE l.lidnr = k.lidnr
AND geboortedatum > #2010-01-01#

Slide 20 - Slide

Wat is hier fout?
SELECT roepnaam, naam, adres, lidnr
FROM leden, kinderen
WHERE naam = 'Dijkstra'

Slide 21 - Open question

Juiste query
SELECT roepnaam, naam, adres, leden.lidnr
FROM leden, kinderen
WHERE leden.lidnr = kinderen.lidnr
AND naam = 'Dijkstra'

Slide 22 - Slide

Wat is hier fout? (meerdere fouten!)
SELECT lidnr, roepnaam, k.naam
FROM leden, kinderen AS k
WHERE geboortedatum > #2010-01-01#

Slide 23 - Open question

Huiswerk
Aan de slag 30 en 31 
Via de planner inleveren.

Oefen zelf ook met query's maken!

Slide 24 - Slide

Formatieve toets blok E, F, G
VERPLICHT!
CD-DVD database downloaden (via planner)
Maken op maandag of dinsdag (via planner)

zelf nakijken, geen beoordeling

Slide 25 - Slide