3 Datenabfrage

Mit der SELECT-Anweisung können Daten aus einer Datenbank abgefragt werden. Das DBMS liest dabei die angeforderten Daten aus den entsprechenden Datenbanktabellen und stellt das Abfrageergebnis in Form einer virtuellen Tabelle bereit. Virtuell bedeutet dabei, dass diese Tabelle nicht dauerhaft in der Datenbank gespeichert wird, sondern nur solange besteht, bis sie vom DBMS an das anfragende Programm übergeben worden ist.

Eine SELECT-Anweisung setzt sich aus verschiedenen Abschnitten (Klauseln, engl. clauses) zusammen. Die SELECT- und die FROM-Klausel sind dabei stets erforderlich. Die weiteren Klauseln sind optional und können bei Bedarf ergänzt werden. Die in Abbildung 3-0 zu sehende Syntax beschränkt sich auf die Klauseln, die in diesem Kapitel behandelt werden.

SQL
SELECT [DISTINCT] spalte [, ...]
FROM tabelle [INNER JOIN tabelle2 ON tabelle.fremdschlüssel = tabelle2.primärschluessel]
[WHERE bedingung]
[GROUP BY spalte [, ...]]
[HAVING bedingung]
[ORDER BY {spalte [ASC|DESC]} [, ...]];
Abb. 3-0: SQL Syntax SELECT-Anweisung

Das DBMS verarbeitet die einzelnen Klauseln nicht der Reihe nach, sondern in der folgenden Reihenfolge: FROM, WHERE, GROUP BY, HAVING, SELECT und ORDER BY. Dies hat zur Folge, dass Angaben innerhalb einer Klausel gegebenenfalls von nachfolgenden, nicht jedoch von vorherigen Klauseln berücksichtigt werden. Ein Beispiel hierfür ist die Definition eines Ersatznamens (Alias) für eine Spaltenbezeichnung in der SELECT-Klausel, der zwar in der später verarbeiteten ORDER BY-Klausel, nicht jedoch in der bereits zuvor verarbeiteten GROUP BY-Klausel genutzt werden kann.

Vorbereitung

In den einzelnen Unterpunkten dieses Kapitels wird das jeweilige Thema zunächst anhand von Beispielen vorgestellt und anschließend mit Hilfe von Übungsaufgaben vertieft. Die Beispiele basieren dabei weiterhin auf der Datenbank Fahrradvermietung. Für die Übungsaufgaben kommt hingegen die MySQL-Datenbank Firmenwagen (Datenmodell) zum Einsatz. Um diese Datenbank in Ihr MySQL-DBMS zu importieren, laden Sie sich die Datei firmenwagen.zip herunter, entpacken diese und führen das enthaltene SQL-Skript firmenwagen.sql zum Beispiel mit der MySQL Workbench (Datei - Skript öffnen ...) aus.