Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder...

19

Transcript of Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder...

Page 1: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
Page 2: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

Modellierungsspezialisten

Page 3: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

DRITTE NORMALFORM!

Page 4: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

„Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

Page 5: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

Mit Joins kann man zwei oder mehrereTabellen verknüpfen

Page 6: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

Unser Ziel:

Das Erforschen von

JOINs

Page 7: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

Select Name, Straße, Hausnnummer, PLZ, email, Klassenbezeichnung, Zweig FROM Schüler, Klassen

Page 8: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

Leider Nein!Jeder mit Jedem!

Page 9: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

SELECT *FROM Tabelle1, Tabelle2

Page 10: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

SELECT Name, Straße, Hausnummer, PLZ, Email, Klassenbezeichnung, ZweigFROM Klassen, SchülerWHERE Schüler.ID = Klassen.Zweig

Page 11: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

SELECT *FROM Tabelle1, Tabelle2WHERE Tab1.id = Tab2.id

SELECT *FROM Tabelle1 INNER JOIN Tabelle2 ONTabelle1.feld1 = Tabelle2.feld2

Page 12: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

SELECT * FROM Bestellungen as besINNER JOIN Kunden as kunON bes.KundenId = kun.ID

WHERE bes.Preis > 40;

Page 13: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

SELECT *FROM Tabelle1INNER JOIN Tabelle2 ONTabelle1.feld1 = Tabelle2.feld2

Tabelle1 Tabelle2Datensatz 1

Datensatz 3Datensatz 4

Datensatz 1Datensatz 2Datensatz 3

AusgabeDatensatz 1 Datensatz

1

Datensatz 3 Datensatz 3

Page 14: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

SELECT *FROM Tabelle1LEFT JOIN Tabelle2ON Tabelle1.feld1 = Tabelle2.feld2

Tabelle1 Tabelle2Datensatz 1

Datensatz 3Datensatz 4

Datensatz 1Datensatz 2Datensatz 3

AusgabeDatensatz 1 Datensatz

1

Datensatz 3

Datensatz 4

Datensatz 3

Page 15: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

SELECT *FROM Tabelle1RIGHT JOIN Tabelle2ON Tabelle1.feld1 = Tabelle2.feld2

Tabelle1 Tabelle2Datensatz 1

Datensatz 3Datensatz 4

Datensatz 1Datensatz 2Datensatz 3

AusgabeDatensatz 1

Datensatz 3

Datensatz 1

Datensatz 2

Datensatz 3

Page 16: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

SELECT *FROM Tabelle1OUTER JOIN Tabelle2ON Tabelle1.feld1 = Tabelle2.feld2

Tabelle1 Tabelle2Datensatz 1

Datensatz 3Datensatz 4

Datensatz 1Datensatz 2Datensatz 3

AusgabeDatensatz 1

Datensatz 3

Datensatz 4

Datensatz 1

Datensatz 2

Datensatz 3

Gibt es in ACCESS nicht!

Page 17: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

statt:SELECT *FROM Tabelle1OUTER JOIN Tabelle2ON Tabelle1.feld = Tabelle2.feld

Kann in manchen Datenbanksystemen auch geschrieben werden:SELECT *FROM Tabelle1OUTER JOIN Tabelle2USING (feld) Gibt es

in ACCESS nicht!

Page 18: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

Tabelle 4Wert F Wert G

Tabelle3Wert D Wert E

Tabelle1 Tabelle2Wert A Wert B Wert C

JOINs lassen sich beliebig oft verschachteln

SELECT * FROM Tabelle1INNER JOIN (Tabelle2 INNER JOIN (Tabelle3 INNER JOIN (Tabelle4

[…]

ON Tabelle4.WertF = Tabelle3.WertE) ON Tabelle3.WertD = Tabelle2.WertC)ON Tabelle1.WertA = Tabelle2.WertB

Page 19: Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“

Tabelle1Wert A Wert B

Tabelle2Wert C

Tabelle3Wert D

Zwei JOINs aus einer Tabelle sind schwierig.Entweder findet man einen Weg die Tabellen anders zu verknüpfen, oder man benutzt die Schreibweise mit WHERE.