Der SELECT-Ausdruck ist ein Abfrage-Ausdruck, der durch das Schlüsselwort SELECT eingeleitet wird. Das Ergebnis eines SELECT-Ausdrucks ist eine Ergebnistabelle.
Der SELECT-Ausdruck setzt sich aus einzelnen Klauseln zusammen, mit denen jeweils bestimmte Operationen verbunden sind. Diese Klauseln führen insgesamt zu der endgültigen Ergebnistabelle.
SELECT-Liste: hier werden die Spalten der Ergebnistabelle festgelegt.
FROM-Klausel: hier werden die Tabellen angegeben; ihre Ergebnistabelle ist deren Kartesisches Produkt.
Werden zwei oder mehrere Tabellen in der FROM-Klausel angegeben, wird das sogenannte Kartesische Produkt dieser Tabellen gebildet. Das Kartesische Produkt zweier Tabellen wird gebildet, indem jeder Satz der ersten Tabelle mit jedem Satz der zweiten Tabelle verkettet wird. Die Anzahl der Sätze des Kartesischen Produkts entspricht somit dem Produkt der Anzahl der Sätze der zu Grunde liegenden Tabellen.
WHERE-Klausel: hier wird eine Suchbedingung angegeben. Ihre Ergebnistabelle besteht aus den Sätzen der Ergebnistabelle der FROM-Klausel, die die Suchbedingung erfüllen.
Eine besondere Form der Suchbedingung in der WHERE-Klausel ist die Join-Bedingung. Damit können Daten aus zwei oder mehr Tabellen verknüpft werden. Eine Join-Bedingung über zwei Tabellen wird formuliert, indem eine Spalte der einen Tabelle mit einer entsprechenden Spalte der anderen Tabelle durch einen Vergleichsoperator verbunden wird. Aus dem Kartesischen Produkt der beiden Tabellen werden nur Sätze ausgewählt, die dieser Join-Bedingung genügen. Eine solche Verknüpfung von Tabellen (wie auch manchmal die entstehende Ergebnistabelle) nennt man einen Join.
Neben dieser Möglichkeit, Tabellen durch eine Join-Bedingung in der WHERE-Klausel zu verbinden, gibt es die umfassendere Möglichkeit, Joins durch Join-Ausdrücke zu formulieren. Join-Ausdrücke werden auf "Join-Ausdruck" beschrieben.
GROUP BY-Klausel: hier können Gruppierungsmerkmale angegeben werden. Ihre Ergebnistabelle ist die der WHERE-Klausel, gruppiert nach Gruppen mit gleichen Werten der Gruppierungsmerkmale. Fehlt die GROUP BY-Klausel, so wird nicht gruppiert.
HAVING-Klausel: hier kann eine Suchbedingung angegeben werden. Die Ergebnistabelle besteht aus den Gruppen, die die Suchbedingung erfüllen.
Die Reihenfolge der Klauseln im SELECT-Ausdruck muss eingehalten werden. Die schrittweise Bildung der Ergebnistabelle folgt derselben Reihenfolge, wie sie im SELECT-Ausdruck vorgegeben ist. Eine Ausnahme ist die SELECT-Liste, die erst nach der Auswertung der FROM-, WHERE-, GROUP BY- und HAVING-Klausel ausgewertet wird.