Grundlegende Informationen zu Abfragen
In einer Abfrage werden Daten angefordert, die in SQL Server 2005 gespeichert sind. Eine Abfrage kann auf unterschiedliche Weise ausgeführt werden:
- Ein Benutzer von MS Query oder Microsoft Access kann eine grafische Benutzeroberfläche (Graphical User Interface, GUI) verwenden, um die gewünschten Daten aus einer oder mehreren SQL Server-Tabellen auszuwählen.
- Ein Benutzer von SQL Server Management Studio oder des Dienstprogramms osql kann eine SELECT-Anweisung ausführen.
- Ein Client oder eine ANwendugn der mittleren Schicht, z. B. eine Microsoft Visual Basic-Anwendung kann die Daten aus einer SQL Server-Tabelle einem gebundenen Steuerelement zuordnen, z. B. einer Tabelle.
Obwohl die Interaktion mit dem Benutzer auf unterschiedliche Weise erfolgen kann, erfüllen alle Abfragen dieselbe Aufgabe: Sie geben das Resultset einer SELECT-Anweisung an den Benutzer zurück. Auch wenn der Benutzer keine SELECT-Anweisung angibt, was normalerweise bei grafischen Tools wie Visual Studio Query Designer der Fall ist, transformiert die Clientsoftware jede Benutzerabfrage in eine SELECT-Anweisung, die an SQL Server gesendet wird.
Die SELECT-Anweisung ruft Daten von SQL Server ab und gibt sie in einem oder mehreren Resultsets an den Benutzer zurück. Ein Resultset ist eine tabellarische Anordnung der Daten aus der SELECT-Anweisung. Ebenso wie eine SQL-Tabelle besteht das Resultset aus Spalten und Zeilen.
Die vollständige Syntax der SELECT-Anweisung ist komplex, die meisten SELECT-Anweisungen beschreiben jedoch vier primäre Eigenschaften eines Resultsets:
- Die Anzahl und die Attribute der Spalten im Resultset. Die folgenden Attribute müssen für jede Resultsetspalte definiert werden:
- Der Datentyp der Spalte.
- Die Größe der Spalte und bei nummerischen Spalten die Genauigkeit und Anzahl der Dezimalstellen.
- Die Quelle der in der Spalte zurückzugebenden Datenwerte.
- Die Tabellen, aus denen die Resultsetdaten abgerufen werden, und alle logischen Beziehungen zwischen den Tabellen.
- Die Bedingungen, die die Zeilen in den Quelltabellen erfüllen müssen, um die SELECT-Anweisung zu kennzeichnen. Zeilen, die die Bedingungen nicht erfüllen, werden ignoriert.
- Die Reihenfolge, in der die Zeilen des Resultsets sortiert werden.
Diese folgende SELECT
-Anweisung findet die Produkt-ID, den Namen und den Listenpreis von Produkten, deren Preis pro Einheit mehr als $40
beträgt:
SELECT ProductID, Name, ListPrice
FROM Production.Product
WHERE ListPrice > $40
ORDER BY ListPrice ASC
Die Spaltennamen (ProductID
, Name
und ListPrice
) hinter dem SELECT-Schlüsselwort bilden die Auswahlliste. Diese Liste gibt an, dass das Resultset drei Spalten, jeweils mit dem Namen, dem Datentyp und der Größe der zugehörigen Spalte in der Product
-Tabelle, enthält. Da die FROM
-Klausel nur eine einzige Basistabelle angibt, beziehen sich alle Spaltennamen in der SELECT
-Anweisung auf Spalten in dieser Tabelle.
Die FROM
-Klausel gibt die Product
-Tabelle als eine der Tabellen an, aus der die Daten abgerufen werden.
Die WHERE
-Klausel gibt die Bedingung an, dass nur die Zeilen in der Product
-Tabelle, deren Wert in der ListPrice
-Spalte mehr als $40
beträgt, diese SELECT
-Anweisung kennzeichnen.
Die ORDER BY
-Klausel gibt an, dass das Resultset in aufsteigender Reihenfolge (ASC
) nach dem Wert in der ListPrice
-Spalte sortiert werden soll.
Siehe auch
Konzepte
Andere Ressourcen
FROM (Transact-SQL)
SELECT (Transact-SQL)
WHERE (Transact-SQL)