Die FROM-Klausel in der Datenbanksprache SQL definiert die Verwendung einer oder mehrerer Tabellen in einer Abfrage. Als reserviertes Wort im SQL-Standard lautet die allgemeine Form einer Abfrage:

SELECT Spaltenname FROM Tabellenname [WHERE Bedingung]

Die FROM-Klausel gibt die Tabellen für zu löschende Zeilen innerhalb von Delete-Anweisungen an und definiert die Tabellen für Abfragen in Unterabfragen (Subqueries) von Update-Anweisungen. Tabellen, Sichten (Views) oder aber auch Informationsschemata (allgemeine Datenbankinformationen) bilden die Grundlage für die FROM-Klausel.

Beispiele Gebe nur Zeilen der Tabelle meineTabelle aus mit Spaltenwerten von meineSpalte größer als 100:

SELECT * FROM meineTabelle WHERE meineSpalte > 100

Entferne alle Einträge der Tabelle Bäume mit einer Höhe kleiner als 80.

DELETE FROM Bäume WHERE Höhe < 80;

Verwende die FROM-Klausel in einer Unterabfrage (auch Subquery genannt), um die Bedingungen für die Auswahl von zu verändernden Zeilen zu definieren:

UPDATE T1 SET C1 = 2 WHERE C2 IN ( SELECT C3 FROM T2 WHERE C4 = 0)

Datenbankoperationen ohne FROM Manche DBMS benötigen die FROM-Klausel nicht, um einen einzelnen Wert oder eine einzelne Zeile auszugeben. In Datenbanksystem von Oracle funktioniert dies z. B. über die sogenannte DUAL Table:

SELECT 3.14 AS Kreiszahl

Andere Systeme erfordern jedoch auch hier ein Schlüsselwort (auch Keyword genannt) um die betreffende Daten auszuwählen: SELECT to_char(sysdate, 'Dy DD-Mon-YYYY HH24:MI:SS') as "Aktuelle Zeit" FROM dual;

In Sybase benötigt die Ausgabe von globalen Variablen wie die verwendete Version keine FROM-Klausel: SELECT @@version

Eine UPDATE-Anweisung ohne Unterabfrage benötigt keine FROM-Klausel:: UPDATE t1 SET col1 = col1 + 1

Siehe auch Data Manipulation Language (DML)

Einzelnachweise

Kategorie:SQL