Grundlegende Informationen zu Abfragen
In einer Abfrage werden Daten angefordert, die in SQL Server 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 MicrosoftVisual 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