Optimieren von Abfrageergebnissen durch Bearbeiten von SQL-Anweisungen
Applies ToAccess für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Wenn Ihre Abfragen nicht hart genug funktionieren, kann das Hinzufügen einiger grundlegender SQL-Anweisungen helfen, Ihre Ergebnisse zu konzentrieren. Sehen wir uns einige Arten von SQL-Anweisungen und die Klauseln oder Teile an, die Sie bearbeiten können, um die gewünschten Ergebnisse zu erhalten.

Hinweis:  Dieser Artikel gilt nicht für Access Web Apps, d. h. für Datenbanken, die Sie mit Access entwerfen und online veröffentlichen.

Inhalt dieses Artikels

Erstellen einer Select-Anweisung

Eine SQL-Select-Anweisung verfügt über zwei bis drei Klauseln. Die SELECT-Klausel teilt der Datenbank mit, wo nach den Daten gesucht werden soll, und fordert sie auf, ein bestimmtes Ergebnis zurückzugeben.

Hinweis:  SELECT-Anweisungen enden immer mit einem Semikolon (;) entweder am Ende der letzten Klausel oder allein auf einer Zeile am Ende der SQL-Anweisung.

Die folgende Select-Anweisung fordert Access auf, Informationen aus den Spalten E-Mail-Adresse und Unternehmen aus der Tabelle Kontakte abzurufen, insbesondere dort, wo "Seattle" in der Spalte "City" gefunden wird.

Registerkarte eines SQL-Objekts mit einer SELECT-Anweisung

Die obige Abfrage verfügt über die drei Klauseln SELECT, FROM und WHERE.

1. Die SELECT-Klausel listet die Spalten auf, die die daten enthalten, die Sie verwenden möchten, und verfügt über einen Operator (SELECT) gefolgt von zwei Bezeichnern (E-Mail-Adresse und Unternehmen). Wenn ein Bezeichner Leerzeichen oder Sonderzeichen aufweist (z. B. "E-Mail-Adresse"), schließen Sie den Bezeichner in eckige Klammern ein.

2. Die FROM-Klausel identifiziert die Quelltabelle. In diesem Beispiel verfügt sie über einen Operator (FROM) gefolgt von einem Bezeichner (Contacts).

3. Die WHERE-Klausel ist eine optionale Klausel. Das Beispiel verfügt über einen Operator (WHERE) gefolgt von einem Ausdruck (City="Seattle").

Weitere Informationen zu Auswahlabfragen finden Sie unter Erstellen einer einfachen Auswahlabfrage.

Hier ist eine Liste der allgemeinen SQL-Klauseln:

SQL-Klausel

Zweck

Erforderlich ?

SELECT

Gibt die Felder mit den gewünschten Daten an

Ja

FROM

Enthält die Tabellen mit den Feldern, die in der SELECT-Klausel angegeben sind

Ja

WHERE

Gibt Feldkriterien an, die jeder Datensatz erfüllen muss, um in die Ergebnisse einbezogen zu werden

Nein

ORDER BY

Gibt die Sortierung der Ergebnisse an

Nein

GROUP BY

Gibt in einer SQL-Anweisung mit Aggregatfunktionen Felder an, die in der SELECT-Klausel nicht zusammengefasst werden

Nur dann, wenn solche Felder vorhanden sind

HAVING

Gibt in einer SQL-Anweisung mit Aggregatfunktionen Felder an, die in der SELECT-Klausel nicht zusammengefasst werden

Nein

Jede SQL-Klausel besteht aus Begriffen. Hier ist eine Liste mit einigen allgemeinen SQL-Begriffen.

SQL-Begriff

Definition

Beispiel

Bezeichner

Ein Name, den Sie zum Identifizieren eines Datenbankobjekts verwenden, z. B. den Spaltennamen.

[E-Mail-Adresse] und Unternehmen

Operator

Ein Schlüsselwort, das eine Aktion repräsentiert oder ändert

AS

Konstante

Ein sich nicht ändernder Wert, z. B. eine Zahl oder NULL

42

Ausdruck

Eine Kombination aus Bezeichnern, Operatoren, Konstanten und Funktionen, die als Ergebnis einen einzelnen Wert liefert

>= Artikel.[Einzelpreis]

Seitenanfang

Anpassen der SELECT-Klausel

Anpassen

Beispiel

Um nur die unterschiedlichen Werte anzuzeigen.

Verwenden Sie das DISTINCT-Schlüsselwort in Ihrer SELECT-Klausel.

Wenn Ihre Kunden z. B. aus mehreren verschiedenen Filialen stammen und einige über dieselbe Telefonnummer verfügen und Sie nur einmal eine Telefonnummer sehen möchten, sieht Ihre SELECT-Klausel wie folgt aus:

SELECT DISTINCT [txtCustomerPhone] 

So ändern Sie die Art und Weise, wie ein Bezeichner in der Datenblattansicht angezeigt wird, um die Lesbarkeit zu verbessern.

Verwenden Sie den AS-Operator (Ein Schlüsselwort, das eine Aktion darstellt oder eine Aktion ändert) mit einem Feldalias in Ihrer SELECT-Klausel. Ein Feldalias ist ein Name, den Sie einem Feld zuweisen, um die Lesbarkeit der Ergebnisse zu erleichtern.

SELECT [txtCustPhone] AS [Customer Phone]

Anpassen der FROM-Klausel

Anpassen

Beispiel

Sie können einen Tabellenalias oder einen anderen Namen verwenden, den Sie einer Tabelle in einer select-Anweisung zuweisen. Ein Tabellenalias ist nützlich, wenn der Name des Tabellennamens lang ist, insbesondere wenn Sie über mehrere Felder mit demselben Namen aus verschiedenen Tabellen verfügen.

So wählen Sie Daten aus zwei Feldern aus, von denen eines aus der Tabelle tblCustomer und das andere aus der Tabelle tblOrder stammt:

SELECT [tblCustomer].[ID],        [tblOrder].[ID]

Verwenden Sie den AS-Operator, um Tabellenaliase in der FROM-Klausel zu definieren:

FROM [tblCustomer] AS [C],      [tblOrder] AS [O] 

Sie können diese Tabellenaliase dann wie folgt in Ihrer SELECT-Klausel verwenden:

SELECT [C].[ID],        [O].[ID]

Verwenden Sie Verknüpfungen, um Paare von Datensätzen aus zwei Datenquellen in einem einzelnen Ergebnis zu kombinieren oder anzugeben, ob Datensätze aus beiden Tabellen eingeschlossen werden sollen, wenn in der verknüpften Tabelle kein entsprechender Datensatz vorhanden ist.

Verknüpfen Sie die Tabellen, sodass die Abfrage die Elemente aus den Tabellen kombiniert und Elemente ausschließt, wenn in der anderen Tabelle kein entsprechender Datensatz vorhanden ist.

Die FROM-Klausel könnte wie folgt aussehen:

FROM [tblCustomer] INNER JOIN [tblOrder]ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID] 

Informationen zur Verwendung von Joins

Es gibt zwei Arten von Verknüpfungen: innere und äußere Joins. Innere Joins sind häufiger in Abfragen. Wenn Sie eine Abfrage mit einem inneren Join ausführen, zeigt das Ergebnis nur die Elemente an, bei denen in beiden verknüpften Tabellen ein gemeinsamer Wert vorhanden ist.

Äußere Joins geben an, ob Daten eingeschlossen werden sollen, bei denen kein gemeinsamer Wert vorhanden ist. Äußere Joins sind direktional, d. h. Sie können angeben, ob alle Datensätze aus der ersten im Join angegebenen Tabelle (als linker Join bezeichnet) oder ob alle Datensätze aus der zweiten Tabelle in den Join eingeschlossen werden sollen (als rechter Join bezeichnet). Ein äußerer Join weist die folgende SQL-Syntax auf:

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

Weitere Informationen zur Verwendung von Joins in einer Abfrage finden Sie unter Verknüpfen von Tabellen und Abfragen.

Seitenanfang

Anpassen der WHERE-Klausel

Die WHERE-Klausel enthält Kriterien, die dazu beiträgt, die Anzahl der in einer Abfrage zurückgegebenen Elemente zu begrenzen. Sehen Sie sich Beispiele für Abfragekriterien und deren Funktionsweise an.

Ein Beispiel dafür, wie Sie die grundlegende WHERE-Klausel anpassen können, ist das Einschränken der Ergebnisse einer Abfrage. Angenommen, Sie möchten die Telefonnummer eines Kunden ermitteln und können sich nur dessen Nachnamen als Bagel merken. In diesem Beispiel werden die Nachnamen in einem LastName-Feld gespeichert, sodass die SQL-Syntax wie folgt lautet:

WHERE [LastName]='Bagel'

Verwenden Sie die WHERE-Klausel auch, um Datenquellen für Spalten zu kombinieren, die übereinstimmende Daten, aber unterschiedliche Datentypen aufweisen. Dies ist praktisch, da Sie keine Verknüpfung zwischen Feldern mit unterschiedlichen Datentypen erstellen können. Verwenden Sie ein Feld als Kriterium für das andere Feld mit dem Schlüsselwort LIKE . Wenn Sie z. B. Daten aus einer Tabelle Assets und einer Employees-Tabelle verwenden möchten, nur wenn der Typ des Medienobjekts im Ressourcentypfeld der Tabelle Assets die Nummer 3 im Feld Menge der Tabelle Employees aufweist, sieht Ihre WHERE-Klausel wie folgt aus:

WHERE field1 LIKE field2

Wichtig:  Sie können keine Kriterien für ein Feld angeben, das mit einer Aggregatfunktion in einer WHERE-Klausel verwendet wird. Sie verwenden stattdessen eine HAVING-Klausel, um Kriterien für aggregierte Felder anzugeben.

Seitenanfang

Anpassen mit dem UNION-Operator

Verwenden Sie den UNION-Operator, wenn Sie eine kombinierte Ansicht der Ergebnisse aus mehreren ähnlichen Auswahlabfragen anzeigen möchten. Wenn Ihre Datenbank beispielsweise über die Tabelle Products und die Tabelle Services verfügt und beide drei Felder aufweisen: exklusives Angebot oder Produkt oder Service, Preis, Garantie oder Garantie. Obwohl in der Tabelle Produkte Garantieinformationen und in der Tabelle Dienste Garantieinformationen gespeichert sind, sind die grundlegenden Informationen identisch. Sie können eine Union-Abfrage verwenden, um die drei Felder aus den beiden Tabellen wie folgt zu kombinieren:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

Wenn Sie die Abfrage ausführen, werden Daten aus jedem Satz entsprechender Felder in einem Ausgabefeld kombiniert. Verwenden Sie den ALL-Operator, um alle doppelten Zeilen in die Ergebnisse einzuschließen.

Hinweis:  Die Select-Anweisung muss die gleiche Anzahl von Ausgabefeldern, in derselben Reihenfolge und mit demselben oder kompatiblen Datentyp aufweisen. Zum Zweck einer Union-Abfrage sind die Datentypen "Zahl" und "Text" kompatibel.

Weitere Informationen zu Union-Abfragen finden Sie unter Verwenden einer Union-Abfrage zum Anzeigen eines einheitlichen Ergebnisses aus mehreren Abfragen.

Seitenanfang

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.