Das Besondere an einer Datenbank ist die Möglichkeit der gezielten Abfrage nach Informationen. Kleine Datenbanken sind für den Anwender noch überschaubar und er weiß, wo sich welche Informationen befinden. Mit zunehmenden Umfang der gespeicherten Informationen sind jedoch Abfragen unerlässlich, da die Suche nach den Informationen mehr Zeit benötigt, als das Erstellen der Abfragen.
Der Aufbau eines SELECT-Befehls besteht immer aus drei Komponenten:
1. SELECT (Auswahl)
2. FROM (Ort der Informationsermittlung)
3. WHERE (Bedingung)
SELECT Key, Name, Vorname, PLZ, Adresse FROM Kundendaten WHERE PLZ als “30%“;
Die Select-Anweisung dient dem Ermitteln von Informationen (Retrieval). Das SELECT-Kommando ist die Anweisung mit der größten Komplexität. Das Ergebnis einer Datenbankabfrage kann durch die Angabe einer Vielzahl von Schlüsselwörtern beeinflußt werden.
Nur die Angabe der SELECT-und der FROM-Klausel sind unbedingt erforderlich.
Beispiele
1.
SELECT NR,
NAME,
PREIS
FROM ARTIKEL
Einfache, kommagetrennte Auflistung der gewünschten Spalten, die im Tabellen-Ausdruck vorkommen. Ohne Alias für die Tabelle.
2.
SELECT X.NR,
X.NAME,
X.PREIS
FROM ARTIKEL As X
ORDER BY X.PREIS
Dasselbe wie im ersten Beispiel, aber mit Aliasname X für die Tabelle und aufsteigender Sortierung nach der Spalte PREIS.
3.
SELECT NR,
PREIS As Netto,
0.16 As MwSt,
PREIS * 1.16 As Brutto,
FROM ARTIKEL
ORDER BY PREIS DESC
Hier werden Alias-Ausdrücke für die Spalten verwendet - das Ergebnis kennt die drei Spalten Netto, MwSt und Brutto. MwSt ist ein konstanter Wert, in der Spalte Brutto wird der Inhalt von PREIS multipliziert mit einer Konstanten. Da ein solches Ergebnis keinen Spaltennamen hat, sollte dieser anschließend festgelegt werden. Das Ergebnis wird nach PREIS absteigend sortiert.
4.
SELECT X.* FROM ARTIKEL As X
ORDER BY X.NAME ASC,
X.PREIS DESC
Hier wird für die Tabelle ein Alias X verwendet und mit '*' sämtliche Spalten ausgewählt. Das Ergebnis wird aufsteigend nach den Artikel-Namen, absteigend nach den Artikel-Preisen sortiert.
5.
SELECT DISTINCT X.NAME
FROM ARTIKEL As X
Das Schlüsselwort 'DISTINCT' entfernt alle mehrfach vorkommenden Zeilen mit Ausnahme einer. Diese Abfrage liefert deshalb nicht vier Zeilen mit doppeltem 'NAME', sondern nur drei Zeilen zurück. Eine Zelle mit dem 'NAME' wurde entfernt.
6.
SELECT X.NAME
FROM ARTIKEL As X
UNION
SELECT Y.NAME
FROM VERTRETER As Y
Diese inhaltlich merkwürdige Abfrage liefert alle Artikel- und alle Vertreter-Namen in einer einzigen Liste aus. Da 'ALL' fehlt, werden sechs Zeilen ausgegeben, das doppelte 'ARTIKEL' wird nur einfach in das Resultset übernommen. Beachten Sie, daß die Datentypen übereinstimmen müssen und daß jede einzelne SELECT-Abfrage dieselbe Zahl von Spalten zurückliefern muß. Die Spaltennamen müssen allerdings nicht übereinstimmen. Bei den SELECT-Anweisungen ab der zweiten Abfrage kann auf ALIAS-Namen verzichtet werden.