- Kategorien:
SELECT¶
SELECT ist sowohl eine Anweisung als auch eine Klausel innerhalb einer SELECT-Anweisung.
Die Anweisung SELECT ist die am häufigsten ausgeführte SQL-Anweisung. Sie fragt die Datenbank ab und ruft einen Satz von Zeilen ab.
Als Klausel definiert SELECT den von einer Abfrage zurückgegebenen Satz von Spalten.
Syntax¶
[ ... ]
SELECT [ { ALL | DISTINCT } ]
{
[{<object_name>|<alias>}.]*
| [{<object_name>|<alias>}.]<col_name>
| [{<object_name>|<alias>}.]$<col_position>
| <expr>
[ [ AS ] <col_alias> ]
}
[ , ... ]
[ ... ]
Weitere Informationen zu SELECT als Anweisung und zu den anderen Klauseln in dieser Anweisung finden Sie unter Abfragesyntax.
Parameter¶
ALL | DISTINCT
Gibt an, ob im Resultset Duplikate entfernt werden sollen:
ALL
schließt alle Werte in das Resultset ein.DISTINCT
entfernt doppelte Werte aus dem Resultset.
Standard:
ALL
*
Das Sternchen ist eine Abkürzung, um anzugeben, dass die Ausgabe alle Spalten des angegebenen Objekts oder alle Spalten aller Objekte enthalten soll, wenn
*
nicht mit einem Objektnamen oder Alias qualifiziert ist.Objektname
oder .Alias
Gibt den Objektbezeichner oder den Objektalias an, wie in der FROM-Klausel definiert.
Spaltenname
Gibt den Spaltenbezeichner an, wie in der FROM-Klausel definiert.
$Spaltenposition
Gibt die Position der Spalte (1-basiert) an, wie in der FROM-Klausel definiert. Wenn eine Spalte aus einer Tabelle referenziert wird, darf diese Anzahl die maximale Anzahl von Spalten in der Tabelle nicht überschreiten.
Ausdruck
Gibt einen Ausdruck an, beispielsweise einen mathematischen Ausdruck, der für eine bestimmte Zeile einen bestimmten Wert ergibt.
[ AS ] Spaltenalias
Gibt den Spaltenalias an, der dem resultierenden Ausdruck zugewiesen ist. Dieser wird als Anzeigename in einer SELECT-Liste der obersten Ebene und als Spaltenname in einer Inline-Ansicht verwendet.
Nutzungshinweise¶
Aliasnamen und Bezeichner unterscheiden standardmäßig nicht zwischen Groß- und Kleinschreibung. Um die Groß- und Kleinschreibung zu erhalten, schließen Sie sie in Anführungszeichen (
"
) ein.Ohne eine ORDER BY-Klausel sind die von SELECT zurückgegebenen Ergebnisse eine ungeordnete Menge. Wenn Sie die gleiche Abfrage wiederholt für dieselben Tabellen ausführen, kann dies jedes Mal zu einer anderen Ausgabereihenfolge führen. Wenn die Reihenfolge von Belang ist, verwenden Sie die
ORDER BY
-Klausel.SELECT kann nicht nur als unabhängige Anweisung verwendet werden, sondern auch als Teil anderer Anweisungen, z. B.
INSERT INTO ... SELECT ...;
. SELECT kann auch in einer Unterabfrage innerhalb einer Anweisung verwendet werden.
Beispiele¶
Nachfolgend finden Sie ein paar einfache Beispiele.
Viele Beispiele sind in anderen Teilen der Dokumentation enthalten, einschließlich der detaillierten Beschreibung von Abfragesyntax.
Dieses Beispiel zeigt, wie Sie nach dem Nachnamen eines Mitarbeiters suchen können, wenn Sie seine ID kennen.
SELECT last_name FROM employee_table WHERE employee_ID = 101;
In diesem Beispiel werden alle Mitarbeiter und der Name der Abteilung aufgeführt, in der jeder Mitarbeiter tätig ist. Die Reihenfolge bei der Ausgabe erfolgt nach Abteilungsnamen, und innerhalb der einzelnen Abteilung nach Namen der Mitarbeiter. Diese Abfrage verwendet JOIN
, um die Informationen in einer Tabelle mit den Informationen in einer anderen Tabelle zu verknüpfen.
SELECT department_name, last_name, first_name FROM employee_table INNER JOIN department_table ON employee_table.department_ID = department_table.department_ID ORDER BY department_name, last_name, first_name;
Dieses Beispiel zeigt, dass die Ausgabespalten nicht direkt aus den Tabellen in der FROM
-Klausel entnommen werden müssen. Die Ausgabespalten können allgemeine Ausdrücke sein. Dieses Beispiel zeigt auch, wie Sie einen Spaltenalias verwenden, damit die Ausgabe einen aussagekräftigen Spaltennamen hat:
-- Assuming that the radius of the circle is 2.0. SELECT pi() * 2.0 * 2.0 AS area_of_circle; -- or SELECT pi() * POW(2.0, 2) AS area_of_circle;