In der FROM-Klausel geben Sie die Tabellen an, aus denen Daten ausgewählt werden sollen.
Um Sätze in den angegebenen Tabellen lesen zu können, müssen Sie entweder Eigentümer dieser Tabellen sein oder das SELECT-Zugriffsrecht besitzen.
SELECT ...
FROM
tabellenangabe,...
tabellenangabe
Angabe einer Tabelle, aus der Daten gelesen werden. Sie dürfen nur Tabellen derselben Datenbank angeben.
Beispiele
Aus dem Kartesischen Produkt der Tabellen KUNDE und AUFTRAG werden die Spalten KNR der Tabelle KUNDE und ANR der Tabelle AUFTRAG ausgewählt. Dabei werden die Tabellen KUNDE und AUFTRAG innerhalb des SELECT-Ausdrucks durch Vergabe von Korrelationsnamen umbenannt. Jede Spaltenangabe, die sich innerhalb des SELECT-Ausdrucks auf KUNDE oder AUFTRAG bezieht, muss dann mit den Korrelationsnamen qualifiziert werden. Korrelationsnamen können verwendet werden, um Spalten eindeutig qualifizieren zu können, um lange Tabellennamen abzukürzen oder in SELECT-Ausdrücken jeweils zum Zusammenhang passende Tabellennamen anzugeben. Aus dem Kartesischen Produkt der Tabellen KUNDE und AUFTRAG werden die Spalten A.KNR und B.ANR ausgewählt:
SELECT A.knr, B.anr FROM kunde A, auftrag B
Ergebnistabelle
knr | anr |
100 | 200 |
100 | 210 |
100 | 211 |
usw. | usw. |
107 | 300 |
107 | 305 |
Die Tabelle AUFSTAT wird in AUFTRAGSSTATUS umbenannt und die Spalten ASTNR und ASTXT werden unter den neuen Namen AUFTRAGSSTATUSNUMMER und AUFTRAGSSTATUSTEXT ausgewählt. Werden in der SELECT-Liste mit „*
“ alle Spalten ausgewählt, dann können mit „(spalte, ...)“ in tabellenangabe neue Spaltennamen vergeben werden. Im Gegensatz zur AS-Klausel in der SELECT-Liste können jedoch nicht einzelne Spaltennamen umbenannt werden. Es können nur alle Spaltennamen umbenannt werden. Die neuen Namen müssen statt der alten in der SELECT-Liste und in der WHERE-, GROUP BY- und HAVING-Klausel verwendet werden.
SELECT * FROM aufstat
AS auftragsstatus (auftragsstatusnummer, auftragsstatustext)
Wird eine Tabelle in der FROM-Klausel mehrfach angegeben, wie beim Join einer Tabelle mit sich selbst, dann müssen Korrelationsnamen definiert werden, um Spalten eindeutig angeben zu können. Referenzen in der SELECT-Liste und den WHERE-, GROUP BY- und HAVING-Klauseln müssen diese Korrelationsnamen statt der ursprünglichen Tabellennamen verwenden.
SELECT A.knr, B.knr FROM kunde A, kunde B