Upload
edith-koning
View
213
Download
0
Embed Size (px)
Citation preview
SQL 3 : JOIN
Het selecteren van data uit meerdere gekoppelde tabellen
VORIGE WEEK
Tabel: rijen en kolommen gevuld met ‘data’
Datatype: typologie op basis van mogelijk operaties
Selecteren uit een enkele tabel ( SELECT )
BASIS DATATYPE
Type informatie in een veld• Bepaalt het soort operaties dat je er op kan uitvoeren.
basis datatypen die in iedere database of programmeertaal op één of andere manier worden ondersteund:
• Numeriek • Tekst • Boolean • Binair• Datum/tijd• Lange tekst
SYNTAX VAN EEN EENVOUDIGE SELECTSELECT ID, naam, prijs
FROM productWHERE categorie = ‘boek’ORDER BY prijs
ID naam prijs8 groentensoep 2,157 appelsap 2,959 blik tonijn 3,15
BEREKENINGEN IN SELECT (NUMERIEK)Selecteer de naam, prijs en prijs_plus_btw
SELECT ID, naam, prijs, prijs *(1+ btw_tarief)/100 AS prijs_met_btwFROM product
ID Naam prijs prijs_met_btw1 fiets 100 1202 brood 1 1,055 boek 30 36
STATISTIEKEN (AGGREGATIES)
SELECT COUNT(*) AS aantal, AVG(prijs) AS midPrijs,MAX(prijs) AS maxPrijs, MIN(prijs) AS minPrijs
FROM product
Aantal midPrijs maxPrijs minPrijs9 873,10 8000 2.05
STATISTIEKEN (AGGREGATIES) PER GROEPSELECT
categorie,COUNT(*) AS aantal, FROM product
GROUP BY categorie
Cat Aantal
vervoer 6
Boek 3
SPECIAAL GEVAL:SELECT DISTINCTSELECT DISTINCT categorie
FROM product
categorievervoervoedselboek
VANDAAG
Gegevens selecteren uit meerdere ‘gekoppelde’ tabellen.
Eigenlijk heel simpel, maar je moet het effe door hebben.
Vallende kwartjes
VANDAAG TE LEREN
Gerelateerde tabellen• Primaire Key (PK) , Foreign Key (FK)
JOIN ( rijen uit verschillende tabellen selecteren en samenvoegen )• INNER JOIN
Soorten relaties• One-to-many• One-to-one• Many-to-many
ENTITEITEN, ATTRIBUTEN EN RELATIES
Een boek is gescheven door een auteurEen student volgt een opleidingDe klant doet een bestellingEen product gemaakt door een producent
Meer voorbeelden?
Voor iedere ‘entiteit’ een tabel
ENTITEIT
Een op zichzelf staand ‘iets’ dat bestaat en kenmerken ( attributen ) heeft.
Bijvoorbeeld:
ProductProducentSchrijverBoekLeerlingVak
RELATIE TUSSEN PRODUCT EN PRODUCENT
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
SELECT UIT TWEE GEKOPPELDE TABELLEN
Selecteer alle producten en koppel daar aan de naam van de producent
SELECT product.*, producent.naam FROM product INNER JOIN producent ON product.producentID = producent.ID
IDnaam … producentID producent.Naam3 tonijn 6 unilever4 kip 6 unilever5 step 4 joop’s fiets… … … …
MEER DAN TWEE GEKOPPELDE TABELLEN
SELECT product.*, producent.naam , btwtarief.percentage
FROM product INNNER JOIN producent
ON product.producentID = producent.IDINNER JOIN btwtarief
ON product.btwtariefID = btwtarief.ID
IDnaam producentID producent.Naam percentage3 tonijn 6 unilever 54 kip 6 unilever 55 step 4 joop’s fiets 20 … … … …
VERSCHILLENDE SOORTEN RELATIES NAAR KARDINALITEITMany-to-one
( product -geproduceerd door> producent )
One-to-many
( klant -doet> bestelling )
Many-to-many
( bestelling –besteldproduct> product )
One-to-one
( man –isgetrouwdmet> vrouw )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
ONE-TO-ONE RELATIES
Wanneer gebruik je een one-to-one?
Natuurlijke 1 op 1 relaties: • Is_getrouwd_met
Aparte tabel voor binaire of grootte data velden• product.filmID = film.ID
SELECT product.* , film.bindataFROM product INNER JOIN film ON product.filmID = film.ID
MANY-TO-MANYBESTELLING <-> PRODUCT
VANDAAG GELEERD
Gerelateerde tabellen• Primaire Key (PK) , Foreign Key (FK)
JOIN ( tabellen samenvoegen )• INNER JOIN
Soorten relaties• Many-to-one• One-to-many• One-to-one• Many-to-many ( gebruik een ‘tussen tabel’ )
OEFENINGEN
DOE DE OEFENINGEN 2
DOE DE EXTRA OEFENINGEN