Optimieren von Abfrageergebnissen durch Bearbeiten von SQL-Anweisungen

Optimieren von Abfrageergebnissen durch Bearbeiten von SQL-Anweisungen

Wichtig :  Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: hier.

Wenn Ihre Abfragen nicht wirklich zielführend sind, können Sie die Ergebnisse mithilfe einfacher SQL-Anweisungen optimieren. In diesem Artikel lernen Sie einige SQL-Anweisungen kennen und erfahren, welche Klauseln oder Teile Sie bearbeiten müssen, um die gewünschten Ergebnisse zu erzielen.

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

Anpassen der SELECT-Klausel

Anpassen der FROM-Klausel

Anpassen der WHERE-Klausel

Anpassungen mit dem Union-operator

Erstellen einer SELECT-Anweisung

Eine SELECT-Anweisung in SQL besteht aus zwei oder drei Klauseln. Mit der SELECT-Klausel wird die Datenbank angewiesen, an einer bestimmten Stelle nach Daten zu suchen ein bestimmtes Ergebnis zurückzugeben.

Hinweis : SELECT-Anweisungen enden immer mit einem Semikolon (;), und zwar am Ende der letzten Klausel oder in einer eigenen Zeile am Ende der SQL-Anweisung.

Mit der folgenden SELECT-Anweisung wird Access aufgefordert, in der Tabelle "Kontakte" Informationen aus den Spalten "E-Mail-Adresse" und "Unternehmen" abzurufen, und zwar speziell die Daten, bei denen die Spalte "Ort" den Wert "Stuttgart" enthält.

Registerkarte eines SQL-Objekts mit einer SELECT-Anweisung

Die oben genannte Abfrage besteht aus drei Klauseln: SELECT, FROM und WHERE.

1. Die SELECT-Klausel listet die Spalten mit den zu verwendenden Daten auf und besteht aus einem Operator (SELECT) und zwei Bezeichnern (E-Mail-Adresse und Unternehmen). Wenn ein Bezeichner Leer- oder Sonderzeichen enthält (beispielsweise "E-Mail-Adresse"), muss er in eckige Klammer gesetzt werden.

2. Die FROM-Klausel gibt die Quelltabelle an. In diesem Beispiel besteht sie aus einem Operator (FROM) und einem Bezeichner (Kontakte).

3. Die WHERE-Klausel ist eine optionale Klausel. In diesem Beispiel besteht sie aus einem Operator (WHERE) und einem Ausdruck (Ort="Stuttgart").

Weitere Informationen zu Auswahlabfragen finden Sie unter erstellen eine einfache Auswahlabfrage.

Nachstehend sind die gängigen SQL-Klauseln aufgelistet:

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

Eine SQL-Klausel besteht aus Begriffen. Nachstehend sind einige gängige SQL-Begriffe aufgelistet:

SQL-Begriff

Definition

Beispiel

Bezeichner

Name zur Identifikation eines Datenbankobjekts, z. B. Spaltenname

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

Anzeigen nur eindeutiger Werte.

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

Beispiel: Ihre Kunden gehören zu verschiedenen Zweigstellen, und manche haben dieselbe Telefonnummer. Die identischen Telefonnummern sollen jedoch nur einmal aufgelistet werden. Die SELECT-Klausel würde in diesem Fall wie folgt lauten:

SELECT DISTINCT [txtCustomerPhone] 

Verbessern der Lesbarkeit durch Ändern eines Bezeichners in der Datenblattansicht.

Verwenden Sie hierfür in der SELECT-Klausel den AS-Operator (Schlüsselwort zur Darstellung oder Modifizierung einer Aktion) mit einem Feldalias. Ein Feldalias ist ein Name, den Sie einem Feld zuweisen, damit die Ergebnisse einfacher lesbar sind.

SELECT [txtCustPhone] AS [Customer Phone]

Anpassen der FROM-Klausel

Anpassen

Beispiel

Sie können einer Tabelle in einer SELECT-Anweisung einen Tabellenalias oder einen anderen Namen zuweisen. Ein Tabellenalias ist hilfreich, wenn der Tabellenname sehr lang ist, besonders bei mehreren Feldern, die aus unterschiedlichen Tabellen stammen, aber denselben Namen haben.

Wählen Sie Daten aus zwei Feldern aus, die beide "ID" heißen und 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 zum Definieren von Tabellenaliasnamen in der FROM-Klausel:

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

Anschließend können Sie diese Tabellenaliasnamen in der SELECT-Anweisung wie folgt verwenden:

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

Mit JOIN-Operationen (Verknüpfungen) können Sie Datensatzpaare aus zwei Datenquellen in einem Ergebnis zusammenführen oder Datensätze aus einer Tabelle in das Ergebnis einbeziehen, wenn es in der zugehörigen Tabelle keinen entsprechenden Datensatz gibt.

Verknüpfen Sie die Tabellen, damit bei der Abfrage Elemente aus den Tabellen zusammengeführt und Elemente ausgeschlossen werden, für die es in der anderen Tabelle keinen entsprechenden Datensatz gibt:

So könnte die FROM-Klausel aussehen:

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

Informationen zum Verwenden von Verknüpfungen

Es gibt zwei Verknüpfungsarten: innere Verknüpfungen und äußere Verknüpfungen. Innere Verknüpfungen werden in Abfragen häufiger verwendet. Wird eine Abfrage mit einer inneren Verknüpfung ausgeführt, enthalten die Ergebnisse nur Elemente, die in beiden verknüpften Tabellen einen gemeinsamen Wert haben.

Äußere Verknüpfungen geben an, ob die Daten auch einbezogen werden sollen, wenn kein gemeinsamer Wert vorhanden ist. Äußere Verknüpfungen erfolgen richtungsbezogen, das heißt, Sie können angeben, ob alle Datensätze aus der in der Verknüpfung angegebenen Tabelle (LEFT JOIN) oder alle Datensätze aus der zweiten Tabelle in der Verknüpfung (RIGHT JOIN) einbezogen werden sollen. Für äußere Verknüpfungen gilt die folgende SQL-Syntax:

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

Finden Sie weitere Informationen zur Verwendung von Verknüpfungen in einer Abfrage in das Verknüpfen von Tabellen und Abfragenaus.

Seitenanfang

Anpassen der WHERE-Klausel

Die WHERE-Klausel umfasst Kriterien, die hilft, beschränken Sie die Anzahl der Elemente in einer Abfrage zurückgegeben. Finden Sie Beispiele für Abfragekriterien und wie sie funktionieren.

Das Eingrenzen der Abfrageergebnisse ist nur ein Beispiel für das Anpassen einer einfachen WHERE-Klausel. Beispiel: Sie suchen die Telefonnummer eines Kunden, erinnern sich aber nur noch daran, dass sein Nachname Casselmann lautet. In diesem Beispiel sind die Nachnamen im Feld "Nachname" gespeichert. Daher sieht die WHERE-Klausel wie folgt aus:

WHERE [LastName]='Bagel'

Verwenden Sie die WHERE-Klausel auch zum Kombinieren von Datenquellen für Spalten, die übereinstimmende Daten, aber unterschiedliche Datentypen aufweisen. Dies ist praktisch, da Sie eine Verknüpfung zwischen Feldern erstellen können, die verschiedene Datentypen aufweisen. Verwenden Sie ein Feld als Kriterium für das Feld andere mit dem Schlüsselwort wie ein. Angenommen, wenn Sie Daten aus einer Tabelle Posten und die Tabelle Employees verwenden möchten, hat nur bei Geben Sie die Art von Ressourcen in der Anlage Feld in der Tabelle Anlagen die Zahl 3 in das Feld Menge der Tabelle Employees, so wie die WHERE-Klausel aussehen würde :

WHERE field1 LIKE field2

Wichtig :  Für ein Feld mit einer Aggregatfunktion können Sie in einer WHERE-Klausel keine Kriterien angeben. Kriterien für aggregierte Felder werden stattdessen mit einer HAVING-Klausel angegeben.

Seitenanfang

Anpassungen mit dem UNION-Operator

Mit dem UNION-Operator können Sie eine zusammengeführte Ergebnisansicht aus verschiedenen vergleichbaren Auswahlabfragen anzeigen. Beispiel: Ihre Datenbank enthält eine Tabelle namens "Artikel" und eine weitere Tabelle namens "Dienstleistungen". In beiden Tabellen gibt es drei Felder: Exklusives Angebot bzw. Produkt oder Dienst, Preis und Gewährleistung bzw. Garantie. Auch wenn in der Tabelle "Artikel" Informationen zur Gewährleistung und in der Tabelle "Dienstleistungen" Informationen zur Garantie gespeichert sind, sind die Daten im Grunde genommen identisch. Sie können nun mithilfe einer UNION-Abfrage die drei Felder aus den beiden Tabellen wie folgt zusammenführen:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

Bei der Abfrage werden die Daten aus den einzelnen Sätzen der entsprechenden Felder in einem Ausgabefeld zusammengeführt. Soll das Ergebnis doppelte Zeilen aufweisen, müssen Sie den ALL-Operator verwenden.

Hinweis :  Die SELECT-Anweisung muss die gleiche Anzahl von Ausgabefeldern in derselben Reihenfolge sowie mit gleichen oder kompatiblen Datentypen aufweisen. Bei einer UNION-Frage werden die Datentypen "Zahl" und "Text" als kompatibel betrachtet.

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

Seitenanfang

Hinweis : Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.

Ihre Fähigkeiten erweitern
Schulung erkunden
Neue Funktionen als Erster erhalten
An Office Insider teilnehmen

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×