Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder...
-
Upload
anniken-moninger -
Category
Documents
-
view
213 -
download
0
Transcript of Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder...
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.