220 likes | 376 Views
Het selecteren van data uit meerdere gekoppelde tabellen. SQL 3 : JOIN. 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
E N D
Het selecteren van data uit meerdere gekoppelde tabellen SQL 3 : JOIN
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 SELECT • SELECTID,naam, prijsFROMproductWHEREcategorie = ‘boek’ORDER BYprijs • 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,05 5 boek 30 36
Statistieken (aggregaties) • SELECTCOUNT(*) AS aantal, AVG(prijs) AS midPrijs,MAX(prijs) AS maxPrijs, MIN(prijs) AS minPrijsFROM product • Aantal midPrijs maxPrijs minPrijs 9 873,10 8000 2.05
Statistieken (aggregaties) per groep • SELECT categorie,COUNT(*) AS aantal, FROM productGROUP BY categorie • Cat Aantal • vervoer 6 • Boek 3
speciaal geval:SELECT DISTINCT • SELECT DISTINCT categorieFROM 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 auteur • Een student volgt een opleiding • De klant doet een bestelling • Een 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: • Product • Producent • Schrijver • Boek • Leerling • Vak
Relatie tussen product en producent Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
SELECT uit twee gekoppeldetabellen • Selecteer alle producten en koppel daar aan de naam van de producent • SELECT product.*, producent.naam • FROM product • INNERJOIN producentON product.producentID = producent.ID • ID naam … producentID producent.Naam3 tonijn 6 unilever4 kip 6 unilever5 step 4 joop’s fiets… … … …
MEER DAN twee gekoppeldetabellen • SELECT product.*, producent.naam , btwtarief.percentage • FROM product • INNNERJOIN producent ON product.producentID = producent.ID • INNER JOIN btwtarief ON product.btwtariefID = btwtarief.ID • ID naam producentID producent.Naam percentage3 tonijn 6 unilever 5 4 kip 6 unilever 55 step 4 joop’s fiets 20… … … …
Verschillendesoortenrelatiesnaarkardinaliteit • Many-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 - j.meuwese@interactievemedia.hva.nl - 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.bindata FROM product INNER JOIN film ON product.filmID = film.ID
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