SQL: SELECT-Abfragen, Teil I

Früher oder später ist es soweit: Sie formulieren Ihre erste eigene SQL-Abfrage. Der Abfrage-Editor kann den Zeitpunkt aufschieben, aber irgendwann wollen Sie beispielsweise für den Einsatz in einem DAO-Recordset mal eben selbst eine SELECT-Anweisung zusammenstellen. Glücklicherweise ist SQL kein Buch mit sieben Siegeln. Die Grundlagen zum Auswählen von Daten mit der SELECT-Anweisung lernen Sie in diesem Artikel kennen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1112_SQLSELECT.mdb.

SQL – was ist das

SQL steht für Structured Query Language, was wiederum Strukturierte Abfragesprache bedeutet. SQL kommt in mehreren Dialekten, die sich von Hersteller zu Hersteller unterschieden – Microsoft’s SQL Server, MySQL und andere Systeme verwenden alle Abfragesprachen mit kleinen Unterschieden. So auch Access: Es setzt Access-SQL ein, das weitgehend mit ANSI-89 Level 1 kompatibel ist. Weitgehend bedeutet hier, dass Access-SQL einige Elemente hinzufügt (wie etwa das Referenzieren von Formularen und Steuerelementen aus der SQL-Anweisung heraus), andere Features aber nicht konsequent übernimmt. Tatsache ist, dass grundlegende SQL-Kenntnisse anderer Dialekte bei Verwendung von Access-SQL nicht schaden können.

Access-SQL besteht im wesentlichen aus zwei Teilen: DDL (Data Definition Language) enthält Anweisungen, mit denen Sie Datenbanken, Tabellen, Felder und Indizes definieren. DML (Data Manipulation Language) wiederum liefert die Techniken zum Abfragen und zum ändern von Daten, also zum Anlegen, Bearbeiten oder Löschen von Datensätzen.

Den ersten Teil der Data Manipulation Language, also das Abfragen von Daten, deckt weitgehend der SELECT-Befehl ab. Mit diesem können Sie alle Abfragen mit SQL definieren, die sich auch mit der Abfrage-Entwurfsansicht erstellen lassen.

Ein Beispiel ist die Abfrage aus Bild 1. Die Abfrage enthält zwei Tabellen und ein Kriterium. Wenn Sie im Kontextmenü der Titelleiste des Abfragefensters den Eintrag SQL-Ansicht auswählen, erhalten Sie die Ansicht aus Bild 2. Das sieht für jemanden, der noch nie eine SQL-Anweisung gesehen hat, möglicherweise etwas kompliziert aus. In der Tat enthält dieser kleine Text alle Informationen, die Sie über die Abfrage-Entwurfsansicht eingetragen haben.

Abfrage mit zwei Tabellen und einem Kriterium in der Abfrage-Entwurfsansicht ...

Bild 1: Abfrage mit zwei Tabellen und einem Kriterium in der Abfrage-Entwurfsansicht …

... und in der SQL-Ansicht.

Bild 2: … und in der SQL-Ansicht.

Wohin damit

SQL-Ausdrücke, die in einfachen Fällen etwa SELECT * FROM tblArtikel lauten und alle Datensätze der Tabelle tblArtikel zurückliefern, können Sie an sehr vielen Stellen einsetzen.

Wenn Sie beispielsweise eine UNION-Abfrage wie in Daten zusammenführen mit UNION-Abfragen beschrieben erstellen, kommen Sie um den Einsatz der SQL-Ansicht einer Abfrage nicht herum.

Wenn Sie die Datenherkunft für Formulare oder Berichte festlegen oder die Datensatzherkunft für Kombinations- und Listenfelder, wird diese ebenfalls als SQL-Ausdruck gespeichert (siehe Bild 3). Erst wenn Sie die Abfrage unter einem eigenen Namen speichern, sodass diese im Datenbankfenster oder im Navigationsbereich sichtbar wird, enthält auch die entsprechende Eigenschaft diesen Namen.

SQL-Ausdruck als Wert der Eigenschaft Datenherkunft eines Formulars

Bild 3: SQL-Ausdruck als Wert der Eigenschaft Datenherkunft eines Formulars

Auch die Eigenschaft Datensatzherkunft von Tabellenfeldern, für die Sie mit dem Nachschlagefeld-Assistenten ein Nachschlagefeld eingerichtet haben, wird mit dem entsprechenden SQL-Ausdruck gefüllt (siehe Bild 4).

SQL-Ausdrücke in Nachschlagefeldern

Bild 4: SQL-Ausdrücke in Nachschlagefeldern

Sollten Sie mit DAO arbeiten, um per VBA-Code auf die Daten in den Tabellen Ihrer Datenbank zuzugreifen, können Sie ebenfalls sowohl den Namen von Tabellen oder Abfragen, aber auch einen expliziten SQL-Ausdruck angeben (mehr dazu beispielsweise im Artikel DAO: Recordsets öffnen, lesen und bearbeiten).

Für Aktionsabfragen wie die Anfüge-, die Lösch-, die Aktualisierungs- und die Tabellenerstellungsabfrage gibt es sogar noch weitere Möglichkeiten:

  • Sie können solche Abfragen direkt als Parameter der RunSQL-Methode des DoCmd-Objekts angeben.
  • Auch die Execute-Methode des Database-Objekts ist für das Ausführen von Aktionsabfragen im SQL-Format prädestiniert.
  • Und schließlich bieten auch Makros eine Möglichkeit, direkt SQL-Ausdrücke auszuführen – nämlich mit der Makroaktion AusführenSQL (siehe Bild 5).
  • Aktionsabfrage per Makro

    Bild 5: Aktionsabfrage per Makro

SQL-Ansicht anzeigen

Die SQL-Ansicht können Sie überall dort aktivieren, wo die Abfrage auch in der Entwurfsansicht erscheint. Je nach Access-Version gibt es dafür verschiedene Einträge im Menü beziehungsweise im Ribbon.

Daher verwenden Sie am einfachsten die versionsübergreifende Methode: den bereits erwähnten Eintrag SQL-Ansicht des Kontextmenüs der Titelzeile einer Abfrage.

Alle Daten einer Tabelle ermitteln

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar