Mit dieser Anweisung rufen Sie Informationen aus der Datenbank ab.
SELECT [ DISTINCT ] [ Zeilenbeschränkung ] Auswahlliste [ FROM Tabellenausdruck, ... ] [ WHERE Suchbedingung ] [ GROUP BY GROUP BY-Ausdruck, ... ] [ ORDER BY ORDER BY-Ausdruck, ... ] [ FOR { UPDATE | READ ONLY } ] [ OPTION ( FORCE ORDER ) ]
Zeilenbeschränkung : FIRST | TOP n [ START AT m ]
Auswahlliste :
Ausdruck [ [ AS ] Aliasname ], ...
ORDER BY-Ausdruck : { Ganzzahl | Ausdruck } [ ASC | DESC ]
DISTINCT-Klausel Geben Sie DISTINCT an, um Duplikatzeilen in den Ergebnissen zu eliminieren. Wenn Sie DISTINCT nicht festlegen, werden alle Zeilen zurückgegeben, die die Klauseln der SELECT-Anweisung erfüllen, einschließlich Duplikatzeilen. Da die Ausführung vieler Anweisungen bedeutend länger dauert, wenn DISTINCT angegeben ist, sollten Sie DISTINCT nur dann verwenden, wenn es unbedingt notwendig ist.
Zeilenbeschränkungsklausel Verwenden Sie Zeilenbeschränkungen, um eine Teilmenge des Ergebnisses zurückzugeben. Beispiel: Geben Sie FIRST an, um die erste Zeile einer Ergebnismenge abzurufen. Verwenden Sie TOP n, um die ersten n Zeilen der Ergebnisse zurückzugeben. Geben Sie START AT m an, um die Position des Ausgangspunkts festzulegen, wenn die TOP n Zeilen abgerufen werden. Um diese Zeilen zu sortieren, damit sie sinnvolle Ergebnisse zurückgeben, geben Sie eine ORDER BY-Klausel für die SELECT-Anweisung an.
Auswahlliste Eine Liste von Ausdrücken, die angibt, was aus der Datenbank abgerufen werden soll. Gewöhnlich sind Ausdrücke in einer Auswahlliste Spaltennamen. Sie können allerdings auch andere Arten von Ausdrücken sein, wie z.B. Funktionen. Verwenden Sie einen Stern (*), um sämtliche Spalten aller Tabellen auszuwählen, die in der FROM-Klausel aufgelistet sind. Optional können Sie ein Alias für jeden Ausdruck in der Auswahlliste festlegen. Mit einem Alias können Sie die Ausdrücke in der Auswahlliste von anderer Stelle aus in der Abfrage referenzieren, wie z.B. innerhalb der WHERE- und ORDER BY-Klauseln.
FROM-Klausel Zeilen werden aus den in Tabellenausdruck angegebenen Tabellen und Ansichten abgerufen. Siehe FROM-Klausel [UltraLite].
WHERE-Klausel Wenn eine WHERE-Klausel angegeben ist, werden nur die Zeilen ausgewählt, die die Suchbedingung erfüllen. Siehe Suchbedingungen in UltraLite.
GROUP BY-Klausel Das Ergebnis der Abfrage, die eine GROUP BY-Klausel hat, enthält eine Zeile für jede unterschiedliche Menge von Werten im GROUP BY-Ausdruck. Die sich ergebenden Zeilen werden oftmals auch Gruppen genannt, da es im Ergebnis eine Zeile für jede Gruppe von Zeilen aus der Tabellenliste gibt. Auf die Zeilen in diesen Gruppen können Aggregatfunktionen angewendet werden. NULL wird als eindeutiger Wert betrachtet.
ORDER BY-Klausel Diese Klausel sortiert die Ergebnisse einer Abfrage entsprechend des in der Klausel angegebenen Ausdrucks. Jeder Ausdruck in der ORDER BY-Klausel kann in aufsteigender (ASC) Reihenfolge oder absteigender (DESC) Reihenfolge (Standardwert) sortiert werden. Wenn der Ausdruck eine Ganzzahl n ist, werden die Abfrageergebnisse nach dem n-ten Ausdruck in der Auswahlliste sortiert.
Die einzige Möglichkeit, sicherzustellen, dass Zeilen in einer bestimmten Reihenfolge zurückgegeben werden, ist die Verwendung von ORDER BY. Ohne die Klausel ORDER BY gibt UltraLite die Zeilen in der jeweils effizientesten Reihenfolge zurück.
FOR-Klausel Diese Klausel hat zwei Variationen, die das Abfrageverhalten steuern:
FOR READ ONLY Diese Klausel gibt an, dass die Abfrage nicht für Updates verwendet wird. Sie sollten diese Klausel möglichst angeben, da UltraLite in einigen Fällen bessere Ergebnisse erzielen kann, wenn bekannt ist, dass eine Abfrage nicht für Aktualisierungen verwendet wird. UltraLite könnte z.B. einen direkten Table-Scan ausführen, wenn es erfährt, dass ein schreibgeschützter Zugriff erforderlich ist. FOR READ ONLY ist das Standardverhalten. Siehe Direkte Page-Scans verwenden.
FOR UPDATE Diese Klausel ermöglicht die Verwendung der Abfrage für Aktualisierungen. Diese Klausel muss explizit angegeben werden, weil sonst Aktualisierungen nicht zulässig sind (FOR READ ONLY ist das Standardverhalten).
OPTION ( FORCE ORDER )-Klausel Diese Klausel wird nicht für den allgemeinen Gebrauch empfohlen. Sie ersetzt die UltraLite-Reihenfolge für den Tabellenzugriff und legt fest, dass UltraLite auf die Tabellen in der Reihenfolge zugreift, in der sie in der Abfrage aufgeführt sind. Verwenden Sie diese Klausel nur, wenn die Abfragereihenfolge effizienter ist als die UltraLite-Reihenfolge.
UltraLite kann auch Ausführungspläne zur Optimierung von Abfragen verwenden. Siehe Ausführungspläne in UltraLite.
Vergewissern Sie sich immer, dass die Abfrage geschlossen wird. Andernfalls kann kein Speicher freigegeben werden und die Anzahl der temporären Tabellen kann unnötig zunehmen.
Die folgende Anweisung stellt die Anzahl der Mitarbeiter in der Tabelle Employees fest.
SELECT COUNT(*) FROM Employees; |
Die folgende Anweisung wählt 10 Zeilen aus der Tabelle Employees aus. Der Beginn ist bei der 40. Zeile und das Ende bei der 49. Zeile.
SELECT TOP 10 START AT 40 * FROM Employees; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |