Eine SQL-Query zum Abfragen von Relationen hat den folgenden generischen Aufbau:
SELECT | Spalten-1 |
FROM | Tabellen |
WHERE | Bedingung-1 |
GROUP BY | Spalten-2 |
HAVING | Bedingung-2 |
ORDER BY | Spalten-3 |
Nur die Klauseln SELECT und FROM sind erforderlich, der Rest ist optional.
Es bedeuten ...
Spalten-1 | Bezeichnungen der Spalten, die ausgegeben werden |
Tabellen | Bezeichnungen der verwendeten Tabellen |
Bedingung-1 | Auswahlbedingung für die auszugebenden Zeilen; verwendet werden |
AND OR NOT = > < != <= >= IS NULL BETWEEN IN LIKE | |
Spalten-2 | Bezeichnungen der Spalten, die eine Gruppe definieren. |
Eine Gruppe bzgl. Spalte x sind diejenigen Zeilen, die bzgl. x | |
identische Werte haben. | |
Bedingung-2 | Bedingung zur Auswahl einer Gruppe |
Spalten-3 | Ordnungsreihenfolge für <Spalten-1> |
Vor <Spalten-1> kann das Schlüsselwort DISTINCT stehen, welches identische Ausgabezeilen unterdrückt.
Sogenannte Aggregate Functions fassen die Werte einer Spalte oder Gruppe zusammen.
Es liefert ...
COUNT (*) | Anzahl der Zeilen |
COUNT (DISTINCT x) | Anzahl der verschiedenen Werte in Spalte x |
SUM (x) | Summe der Werte in Spalte x |
SUM (DISTINCT x) | Summe der verschiedenen Werte in Spalte x |
AVG (x) | Durchschnitt der Werte in Spalte x |
AVG (DISTINCT x) | Durchschnitt der verschiedenen Werte in Spalte x |
MAX (x) | Maximum der Werte in Spalte x |
MIN (x) | Minimum der Werte in Spalte x |
jeweils bezogen auf solche Zeilen, welche die WHERE-Bedingung erfüllen. Null-Einträge werden bei AVG, MIN, MAX und SUM ignoriert.
Spalten der Ergebnisrelation können umbenannt werden mit Hilfe der AS-Klausel.