Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdJosephus Brabander Laatst gewijzigd meer dan 9 jaar geleden
1
Week 3 BIRAIV03 Les B6 BIRAIV03 Les B6
2
naamtype A. JanssenLunare P. GerritsenGratea J. MolenaarTerra J.M. de WitTerra H.A.M. GeelsbergenLunare T. van DamSolis R. de GrootTerra P.G. ElbersGratea J. van WellSolis P. EigendonkLunare B. WagenaarSolis C. EradesTerra W. KonijnenburgTerra R.R. PaaltjensGratea H. van LaarLunare Intekening Voorbeeld Woningtype typeomschrijvinggepland_aantalprijs Lunarehalfvrijstaande villa18789000 Terravrijstaande villa71100000 Respectasingelwoning16545000 Gratealaanwoning10449000 Solisappartement14498000
3
Vraag Hoeveel keer is per woningtype is ingetekend? naamtype A. JanssenLunare P. GerritsenGratea J. MolenaarTerra J.M. de WitTerra H.A.M. GeelsbergenLunare T. van DamSolis R. de GrootTerra P.G. ElbersGratea J. van WellSolis P. EigendonkLunare B. WagenaarSolis C. EradesTerra W. KonijnenburgTerra R.R. PaaltjensGratea H. van LaarLunare SELECT type, COUNT(*) FROM intekening GROUP BY type; typeExpr1001 Gratea3 Lunare4 Solis3 Terra5
4
Extra voorwaarde voor gegroepeerde tabel Op welke woningtypen is meer dan 3 keer ingetekend? SELECT type, COUNT(*) FROM intekening GROUP BY type HAVING COUNT(*) > 3; typeExpr1001 Lunare4 Terra5
5
Valkuil Op welke woningtypen is minder dan 4 keer ingetekend? SELECT type, COUNT(*) FROM intekening GROUP BY type HAVING COUNT(*) < 4; typeExpr1001 Gratea3 Solis3 Op "Respecta" is geen enkele keer ingetekend!
6
"Respecta" komt niet voor in intekening! SELECT type, COUNT(*) FROM intekening GROUP BY type; typeExpr1001 Gratea3 Lunare4 Solis3 Terra5 SELECT type FROM woningtype; type Lunare Terra Respecta Gratea Solis
7
Mogelijke oplossing SELECT type, COUNT(*) FROM intekening GROUP BY type UNION SELECT type, 0 FROM woningtype WHERE type NOT IN (SELECT type FROM intekening); typeExpr1001 Gratea3 Lunare4 Solis3 Terra5 typeExpr1001 Respecta0 typeExpr1001 Gratea3 Lunare4 Respecta0 Solis3 Terra5 + =
8
De oplossing typeExpr1001 Respecta0 Op welke woningtypen is minder dan 4 keer ingetekend? SELECT type, COUNT(*) FROM intekening GROUP BY type HAVING COUNT(*) < 4 UNION SELECT type, 0 FROM woningtype WHERE type NOT IN (SELECT type FROM intekening); typeExpr1001 Gratea3 Solis3 + = typeExpr1001 Gratea3 Respecta0 Solis3
9
Microsoft: opvatting over de join Woningtype naamtype A. JanssenLunare P. GerritsenGratea J. MolenaarTerra J.M. de WitTerra H.A.M. GeelsbergenLunare T. van DamSolis R. de GrootTerra P.G. ElbersGratea J. van WellSolis P. EigendonkLunare B. WagenaarSolis C. EradesTerra W. KonijnenburgTerra R.R. PaaltjensGratea H. van LaarLunare typeomschrijvinggepland_aantalprijs Lunarehalfvrijstaande villa18789000 Terravrijstaande villa71100000 Respectasingelwoning16545000 Gratealaanwoning10449000 Solisappartement14498000 Intekening
10
Microsoft: de inner join SELECT * FROM intekening INNER JOIN woningtype ON intekening.type = woningtype.type; naamintekening.typewoningtype.typeoms...gepl...prijs A. JanssenLunare hal...18789... H.A.M. GeelsbergenLunare hal...18789... P. EigendonkLunare hal...18789... H. van LaarLunare hal...18789... J. MolenaarTerra vrij..71100... J.M. de WitTerra vrij...71100... R. de GrootTerra vrij...71100... C. EradesTerra vrij...71100... --- SELECT * FROM intekening INNER JOIN woningtype ON intekening.type = woningtype.type;
11
Microsoft: is precies hetzelfde als... SELECT * FROM intekening INNER JOIN woningtype ON intekening.type = woningtype.type; naamintekening.typewoningtype.typeoms...gepl...prijs A. JanssenLunare hal...18789... H.A.M. GeelsbergenLunare hal...18789... P. EigendonkLunare hal...18789... H. van LaarLunare hal...18789... J. MolenaarTerra vrij..71100... J.M. de WitTerra vrij...71100... R. de GrootTerra vrij...71100... C. EradesTerra vrij...71100... --- SELECT * FROM intekening, woningtype WHERE intekening.type = woningtype.type;
12
Microsoft: de join verder uitgediept (1) aa p q r s u w tabel1 zz p r s t v w x tabel2 aazz pp rr ss ww SELECT * FROM tabel1 INNER JOIN tabel2 ON tabel1.aa = tabel2.zz;
13
Microsoft: de join verder uitgediept (2) tabel1 zz p r s t v w x tabel2 SELECT * FROM tabel1 LEFT OUTER JOIN tabel2 ON tabel1.aa = tabel2.zz; aazz pp q rr ss u ww aa p q r s u w
14
Microsoft: de join verder uitgediept (3) tabel1 zz p r s t v w x tabel2 SELECT * FROM tabel1 RIGHT OUTER JOIN tabel2 ON tabel1.aa = tabel2.zz; aazz pp rr ss t v ww x aa p q r s u w
15
Microsoft: de join verder uitgediept (4) tabel3tabel4 SELECT * FROM tabel3 INNER JOIN tabel4 ON tabel3.kol1 = tabel4.kol1; kol1kol2 aaap anoot bmies cwim eaap kol1kol2 aede buden bbest cvuren cuden dtiel tabel3.kol1tabel3.kol2tabel4.kol1tabel4.kol2 aaapaede anootaede bmiesbbest bmiesbuden cwimcuden cwimcvuren
16
Microsoft: de join verder uitgediept (5) tabel3tabel4 SELECT * FROM tabel3 LEFT OUTER JOIN tabel4 ON tabel3.kol1 = tabel4.kol1; kol1kol2 aaap anoot bmies cwim eaap kol1kol2 aede buden bbest cvuren cuden dtiel tabel3.kol1tabel3.kol2tabel4.kol1tabel4.kol2 aaapaede anootaede bmiesbbest bmiesbuden cwimcuden cwimcvuren eaap
17
Microsoft: de join verder uitgediept (6) tabel3tabel4 SELECT * FROM tabel3 RIGHT OUTER JOIN tabel4 ON tabel3.kol1 = tabel4.kol1; kol1kol2 aaap anoot bmies cwim eaap kol1kol2 aede buden bbest cvuren cuden dtiel tabel3.kol1tabel3.kol2tabel4.kol1tabel4.kol2 anootaede aaapaede bmiesbuden bmiesbbest cwimcvuren cwimcuden dtiel
18
Microsoft: de join verder uitgediept (7) tabel3tabel4 kol1kol2 aaap anoot bmies cwim eaap kol1kol2 aede buden bbest cvuren cuden dtiel In dit voorbeeld is geen sprake van REFERENTIËLE INTEGRITEIT
19
Terug naar FASCINATIO (1) Woningtype naamtype A. JanssenLunare P. GerritsenGratea J. MolenaarTerra J.M. de WitTerra H.A.M. GeelsbergenLunare T. van DamSolis R. de GrootTerra P.G. ElbersGratea J. van WellSolis P. EigendonkLunare B. WagenaarSolis C. EradesTerra W. KonijnenburgTerra R.R. PaaltjensGratea H. van LaarLunare typeomschrijvinggepland_aantalprijs Lunarehalfvrijstaande villa18789000 Terravrijstaande villa71100000 Respectasingelwoning16545000 Gratealaanwoning10449000 Solisappartement14498000 Intekening
20
Terug naar FASCINATIO (2) SELECT woningtype.type, intekening.type, naam FROM woningtype LEFT OUTER JOIN intekening ON woningtype.type = intekening.type;
21
Terug naar FASCINATIO (3) woningtype.typeintekening.typenaam Lunare A. Janssen Lunare H.A.M. Geelsbergen Lunare P. Eigendonk Lunare H. van Laar Terra J. Molenaar Terra J.M. de Wit Terra R. de Groot Terra C. Erades Terra W. Konijnenburg Respecta Gratea P. Gerritsen Gratea P.G. Elbers Gratea R.R. Paaltjens Solis T. van Dam ---
22
Terug naar FASCINATIO (4) SELECT woningtype.type, COUNT(*) FROM woningtype LEFT OUTER JOIN intekening ON woningtype.type = intekening.type GROUP BY woningtype.type; typeExpr1001 Gratea3 Lunare4 Respecta1 Solis3 Terra5
23
Terug naar FASCINATIO (5) SELECT woningtype.type, COUNT(naam) FROM woningtype LEFT OUTER JOIN intekening ON woningtype.type = intekening.type GROUP BY woningtype.type; typeExpr1001 Gratea3 Lunare4 Respecta0 Solis3 Terra5
24
Terug naar FASCINATIO (6) SELECT woningtype.type, COUNT(naam) FROM woningtype LEFT OUTER JOIN intekening ON woningtype.type = intekening.type GROUP BY woningtype.type HAVING COUNT(naam) < 4; typeExpr1001 Gratea3 Respecta0 Solis3
25
Ook: SELECT a.type, COUNT(naam) FROM woningtype a LEFT OUTER JOIN intekening b ON a.type = b.type GROUP BY a.type HAVING COUNT(naam) < 4; typeExpr1001 Gratea3 Respecta0 Solis3
26
Uiteindelijk: SELECT a.type FROM woningtype a LEFT OUTER JOIN intekening b ON a.type = b.type GROUP BY a.type HAVING COUNT(naam) < 4; type Gratea Respecta Solis
27
Aandachtspunten: Betreft het een left outer join of right outer join ? Op welke kolom groeperen ? Welke kolom aggregeren (tellen, optellen) ?
28
Opdracht: De decaan wil een gesprek met alle BI'studenten die tot nu toe minder dan 2 studiepunten behaald hebben. Welke studenten komen voor zo'n gesprek in aanmerking (nummers en namen)? StudentnrNaamVoorlettersGebdatGeslachtOpl 0700711HendriksO23 jan 1985mI 0700716HaringaFW25 okt 1986vBI 0700816WillemsenT16 mrt 1985mBI --- ModCodeNaamSpt ARCHArchitectuur1 INFA01Informatiekunde1 INFA02Informatiekunde1 --- StudentnrModCodeDatumCijfer 0700711INFA0117 nov 20038 0700716INFA0117 nov 20035 0700716INFA0102 jul 20046 --- student resultaat moduul
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.