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

Preview:

Citation preview

Modellierungsspezialisten

DRITTE NORMALFORM!

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

Mit Joins kann man zwei oder mehrereTabellen verknüpfen

Unser Ziel:

Das Erforschen von

JOINs

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

Leider Nein!Jeder mit Jedem!

SELECT *FROM Tabelle1, Tabelle2

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

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

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

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

WHERE bes.Preis > 40;

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

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

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

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!

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!

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

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.

Recommended