„From (SQL)“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
Scharfschaltung Kategorien |
K Rs, Zs, Kleinigkeiten |
||
Zeile 3: | Zeile 3: | ||
'''<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 |
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 == |
||
Zeile 21: | Zeile 21: | ||
</source> |
</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: |
||
<syntaxhighlight lang="sql"> |
<syntaxhighlight lang="sql"> |
||
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)| Datenbanksystem von Oracle]] funktioniert dies z.B. über die sogenannte |
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> |
||
<source lang="sql"> |
<source lang="sql"> |
Version vom 16. Dezember 2018, 14:02 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 benötigt in Datenbanksystemen nicht zwingend eine 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.