„From (SQL)“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
K Tag-Fehler korrigiert |
tk k |
||
Zeile 1: | Zeile 1: | ||
Die '''FROM'''-Klausel in [[SQL]] definiert die Verwendung einer oder mehrerer Tabellen in einer Abfrage. Als reserviertes Wort im [[SQL#Sprachstandard|SQL-Standard]] lautet die allgemeine Form einer Abfrage:<ref>{{Internetquelle |autor=[[Microsoft]] |url=https://docs.microsoft.com/de-de/sql/t-sql/queries/from-transact-sql?view=sql-server-2017 |titel=From clause in Transact SQL |zugriff=2018-12-03}}</ref><ref>{{Internetquelle |autor=[[Drupal]] | |
Die '''FROM'''-Klausel in [[SQL]] definiert die Verwendung einer oder mehrerer Tabellen in einer Abfrage. Als reserviertes Wort im [[SQL#Sprachstandard|SQL-Standard]] lautet die allgemeine Form einer Abfrage:<ref>{{Internetquelle |autor=[[Microsoft]] |url=https://docs.microsoft.com/de-de/sql/t-sql/queries/from-transact-sql?view=sql-server-2017 |titel=From clause in Transact SQL |zugriff=2018-12-03}}</ref><ref>{{Internetquelle |autor=[[Drupal]] |url=https://www.drupal.org/docs/develop/coding-standards/list-of-sql-reserved-words |titel=Reserved Words in SQL |zugriff=2018-12-03}}</ref> |
||
'''<code>SELECT</code>''' ''Spaltenname'' '''<code>FROM</code>''' ''Tabellenname'' ['''<code>WHERE</code>''' ''Bedingung''] |
'''<code>SELECT</code>''' ''Spaltenname'' '''<code>FROM</code>''' ''Tabellenname'' ['''<code>WHERE</code>''' ''Bedingung''] |
||
Die <code>FROM</code>-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 (SQL)|Update]]-Anweisungen. [[Datenbanktabelle|Tabellen]], [[Sicht (Datenbank)|Sichten]] (Views) oder aber auch Informationsschemata (allgemeine Datenbankinformationen) bilden die Grundlage für die <code>FROM</code>-Klausel.<ref>{{Internetquelle |autor=[[Microsoft]] |url=https://docs.microsoft.com/en-us/sql/relational-databases/system-information-schema-views/system-information-schema-views-transact-sql?view=sql-server-2017 |titel=System Information Schema Views (Transact-SQL)|zugriff=2018-12-03 |
Die <code>FROM</code>-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 (SQL)|Update]]-Anweisungen. [[Datenbanktabelle|Tabellen]], [[Sicht (Datenbank)|Sichten]] (Views) oder aber auch Informationsschemata (allgemeine Datenbankinformationen) bilden die Grundlage für die <code>FROM</code>-Klausel.<ref>{{Internetquelle |autor=[[Microsoft]] |url=https://docs.microsoft.com/en-us/sql/relational-databases/system-information-schema-views/system-information-schema-views-transact-sql?view=sql-server-2017 |titel=System Information Schema Views (Transact-SQL) |zugriff=2018-12-03}}</ref> |
||
== Beispiele == |
== Beispiele == |
||
Gebe nur Zeilen der Tabelle ''meineTabelle'' aus mit Spaltenwerten von ''meineSpalte'' größer als 100: |
Gebe nur Zeilen der Tabelle ''meineTabelle'' aus mit Spaltenwerten von ''meineSpalte'' größer als 100: |
||
< |
<syntaxhighlight lang="sql"> |
||
SELECT * |
SELECT * |
||
FROM meineTabelle |
FROM meineTabelle |
||
WHERE meineSpalte > 100 |
WHERE meineSpalte > 100 |
||
</syntaxhighlight> |
|||
</source> |
|||
Entferne alle Einträge der Tabelle Bäume mit einer Höhe kleiner als 80. |
Entferne alle Einträge der Tabelle Bäume mit einer Höhe kleiner als 80. |
||
< |
<syntaxhighlight lang="sql"> |
||
DELETE FROM Bäume |
DELETE FROM Bäume |
||
WHERE Höhe < 80; |
WHERE Höhe < 80; |
||
</syntaxhighlight> |
|||
</source> |
|||
Verwende die <code>FROM</code>-Klausel in einer Unterabfrage (auch Subquery genannt), um die Bedingungen für die Auswahl von zu verändernden Zeilen zu definieren: |
Verwende die <code>FROM</code>-Klausel in einer Unterabfrage (auch Subquery genannt), um die Bedingungen für die Auswahl von zu verändernden Zeilen zu definieren: |
||
Zeile 32: | Zeile 32: | ||
== Datenbankoperationen ohne FROM == |
== Datenbankoperationen ohne FROM == |
||
Manche [[Datenbank#Datenbankmanagementsystem|DBMS]] benötigen die <code>FROM</code>-Klausel nicht, um einen einzelnen Wert oder eine einzelne Zeile auszugeben. In [[Oracle (Datenbanksystem)| |
Manche [[Datenbank#Datenbankmanagementsystem|DBMS]] benötigen die <code>FROM</code>-Klausel nicht, um einen einzelnen Wert oder eine einzelne Zeile auszugeben. In [[Oracle (Datenbanksystem)|Datenbanksystem von Oracle]] funktioniert dies z. B. über die sogenannte DUAL Table:<ref>{{Internetquelle |autor=[[Oracle]] |url=https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries009.htm |titel=Selecting from the DUAL Table |zugriff=2018-12-03}}</ref> |
||
< |
<syntaxhighlight lang="sql"> |
||
SELECT 3.14 AS Kreiszahl |
SELECT 3.14 AS Kreiszahl |
||
</syntaxhighlight> |
|||
</source> |
|||
Andere Systeme erfordern jedoch auch hier ein [[Schlüsselwort (Programmierung)|Schlüsselwort]] (auch Keyword genannt) um die betreffende Daten auszuwählen:<ref>{{Internetquelle |autor=Infolab [[Stanford University]] |url=http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html |titel=Oracle Dates and Times |zugriff=2018-12-03}}</ref> |
Andere Systeme erfordern jedoch auch hier ein [[Schlüsselwort (Programmierung)|Schlüsselwort]] (auch Keyword genannt) um die betreffende Daten auszuwählen:<ref>{{Internetquelle |autor=Infolab [[Stanford University]] |url=http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html |titel=Oracle Dates and Times |zugriff=2018-12-03}}</ref> |
||
< |
<syntaxhighlight lang="sql"> |
||
SELECT to_char(sysdate, 'Dy DD-Mon-YYYY HH24:MI:SS') as "Aktuelle Zeit" |
SELECT to_char(sysdate, 'Dy DD-Mon-YYYY HH24:MI:SS') as "Aktuelle Zeit" |
||
FROM dual; |
FROM dual; |
||
</syntaxhighlight> |
|||
</source> |
|||
In Sybase benötigt die Ausgabe von [[Variable (Programmierung)#Variablen in einer Blockstruktur|globalen Variablen]] wie die verwendete Version keine <code>FROM</code>-Klausel:<ref>{{Internetquelle |autor=[[Sybase]] |url=http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1510/html/iqrefbb/CACGCGBI.htm |titel=Sybooks Online: Chapter 2: SQL Language Elements: Global variables |zugriff=2018-12-03}}</ref> |
In Sybase benötigt die Ausgabe von [[Variable (Programmierung)#Variablen in einer Blockstruktur|globalen Variablen]] wie die verwendete Version keine <code>FROM</code>-Klausel:<ref>{{Internetquelle |autor=[[Sybase]] |url=http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1510/html/iqrefbb/CACGCGBI.htm |titel=Sybooks Online: Chapter 2: SQL Language Elements: Global variables |zugriff=2018-12-03}}</ref> |
||
< |
<syntaxhighlight lang="sql"> |
||
SELECT @@version |
SELECT @@version |
||
</syntaxhighlight> |
|||
</source> |
|||
Eine <code>UPDATE</code>-Anweisung ohne Unterabfrage benötigt keine <code>FROM</code>-Klausel:<ref>{{Internetquelle |autor=[[MySQL]] |url=https://dev.mysql.com/doc/refman/8.0/en/update.html |titel=UPDATE Syntax |zugriff=2018-12-03}}</ref>: |
Eine <code>UPDATE</code>-Anweisung ohne Unterabfrage benötigt keine <code>FROM</code>-Klausel:<ref>{{Internetquelle |autor=[[MySQL]] |url=https://dev.mysql.com/doc/refman/8.0/en/update.html |titel=UPDATE Syntax |zugriff=2018-12-03}}</ref>: |
||
< |
<syntaxhighlight lang="sql"> |
||
UPDATE t1 SET col1 = col1 + 1 |
UPDATE t1 SET col1 = col1 + 1 |
||
</syntaxhighlight> |
|||
</source> |
|||
== Siehe auch == |
== Siehe auch == |
Version vom 9. Januar 2019, 00:28 Uhr
Die FROM-Klausel in SQL definiert die Verwendung einer oder mehrerer Tabellen in einer Abfrage. Als reserviertes Wort im SQL-Standard lautet die allgemeine Form einer Abfrage:[1][2]
SELECT
SpaltennameFROM
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.[3]
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:[4]
SELECT 3.14 AS Kreiszahl
Andere Systeme erfordern jedoch auch hier ein Schlüsselwort (auch Keyword genannt) um die betreffende Daten auszuwählen:[5]
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:[6]
SELECT @@version
Eine UPDATE
-Anweisung ohne Unterabfrage benötigt keine FROM
-Klausel:[7]:
UPDATE t1 SET col1 = col1 + 1
Siehe auch
Einzelnachweise
- ↑ Microsoft: From clause in Transact SQL. Abgerufen am 3. Dezember 2018.
- ↑ Drupal: Reserved Words in SQL. Abgerufen am 3. Dezember 2018.
- ↑ Microsoft: System Information Schema Views (Transact-SQL). Abgerufen am 3. Dezember 2018.
- ↑ Oracle: Selecting from the DUAL Table. Abgerufen am 3. Dezember 2018.
- ↑ Infolab Stanford University: Oracle Dates and Times. Abgerufen am 3. Dezember 2018.
- ↑ Sybase: Sybooks Online: Chapter 2: SQL Language Elements: Global variables. Abgerufen am 3. Dezember 2018.
- ↑ MySQL: UPDATE Syntax. Abgerufen am 3. Dezember 2018.