22
SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

Embed Size (px)

Citation preview

Page 1: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

SQL 3 : JOIN

Het selecteren van data uit meerdere gekoppelde tabellen

Page 2: 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 )

Page 3: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 4: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 5: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 6: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 7: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

STATISTIEKEN (AGGREGATIES) PER GROEPSELECT

categorie,COUNT(*) AS aantal, FROM product

GROUP BY categorie

Cat Aantal

vervoer 6

Boek 3

Page 8: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

SPECIAAL GEVAL:SELECT DISTINCTSELECT DISTINCT categorie

FROM product

categorievervoervoedselboek

Page 9: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

VANDAAG

Gegevens selecteren uit meerdere ‘gekoppelde’ tabellen.

Eigenlijk heel simpel, maar je moet het effe door hebben.

Vallende kwartjes

Page 10: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 11: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 12: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

ENTITEIT

Een op zichzelf staand ‘iets’ dat bestaat en kenmerken ( attributen ) heeft.

Bijvoorbeeld:

ProductProducentSchrijverBoekLeerlingVak

Page 13: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 14: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen
Page 15: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 16: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 17: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 18: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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

Page 19: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

MANY-TO-MANYBESTELLING <-> PRODUCT

Page 20: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

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’ )

Page 21: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen

OEFENINGEN

DOE DE OEFENINGEN 2

DOE DE EXTRA OEFENINGEN

Page 22: SQL 3 : JOIN Het selecteren van data uit meerdere gekoppelde tabellen