Bearbeiten Sie SQL-Anweisungen, um Abfrageergebnisse zu schärfen
Wenn Ihre Abfragen nicht hart genug arbeiten, kann das Hinzufügen einiger grundlegender SQL-Anweisungen helfen, Ihre Ergebnisse zu fokussieren. 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 – die Art von Datenbank, die Sie mit Access entwerfen und online veröffentlichen.
In diesem Artikel
Erstellen Sie eine Select-Anweisung
Eine SQL-Select-Anweisung hat zwei bis drei Klauseln. Die SELECT-Klausel teilt der Datenbank mit, wo sie nach den Daten suchen 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 in einer eigenen Zeile am Ende der SQL-Anweisung.
Die folgende select-Anweisung fordert Access auf, Informationen aus den Spalten „E-Mail-Adresse" und „Firma" aus der Tabelle „Kontakte" abzurufen, insbesondere dort, wo „Seattle" in der Spalte „Ort" zu finden ist.

Die obige Abfrage hat drei Klauseln SELECT, FROM und WHERE.
1. Die SELECT-Klausel listet die Spalten auf, die die Daten enthalten, die Sie verwenden möchten, und hat einen Operator (SELECT), gefolgt von zwei Bezeichnern (E-Mail-Adresse und Firma). Wenn eine Kennung Leerzeichen oder Sonderzeichen enthält (z. B. „E-Mail-Adresse"), schließen Sie die Kennung in eckige Klammern ein.
2. Die FROM-Klausel identifiziert die Quelltabelle. In diesem Beispiel hat es einen Operator (VON), gefolgt von einem Bezeichner (Kontakte).
3. Die WHERE-Klausel ist eine optionale Klausel. Das Beispiel hat einen Operator (WHERE), gefolgt von einem Ausdruck (City="Seattle").
Weitere Informationen zu Auswahlabfragen finden Sie unter Erstellen einer einfachen Auswahlabfrage.
Hier ist eine Liste gängiger SQL-Klauseln:
SQL-Klausel | Was es macht | Erforderlich ? |
AUSWÄHLEN | Listet die Felder auf, die relevante Daten enthalten. | Ja |
AUS | Listet die Tabellen auf, die die in der SELECT-Klausel aufgeführten Felder enthalten. | Ja |
WO | Gibt Feldkriterien an, die von jedem Datensatz erfüllt werden müssen, um in die Ergebnisse aufgenommen zu werden. | Nein |
SORTIEREN NACH | Gibt an, wie die Ergebnisse sortiert werden. | Nein |
GRUPPIERE NACH | Listet in einer SQL-Anweisung, die Aggregatfunktionen enthält, Felder auf, die nicht in der SELECT-Klausel zusammengefasst sind. | Nur wenn solche Felder vorhanden sind |
HABEN | Gibt in einer SQL-Anweisung, die Aggregatfunktionen enthält, Bedingungen an, die für Felder gelten, die in der SELECT-Anweisung zusammengefasst sind. | Nein |
Jede SQL-Klausel besteht aus Begriffen. Hier ist eine Liste einiger gebräuchlicher SQL-Begriffe.
SQL-Begriff | Definition | Beispiel |
Kennung | Ein Name, den Sie verwenden, um ein Datenbankobjekt zu identifizieren, wie z. B. der Spaltenname. | [E-Mail-Adresse] und Firma |
Operator | Ein Schlüsselwort, das eine Aktion darstellt oder eine Aktion modifiziert. | ALS |
Konstante | Ein Wert, der sich nicht ändert, z. B. eine Zahl oder NULL. | 42 |
Ausdruck | Eine Kombination aus Bezeichnern, Operatoren, Konstanten und Funktionen, die zu einem einzelnen Wert ausgewertet wird. | >= Produkte.[Stückpreis] |
Anpassen der SELECT-Klausel
Anpassen | Beispiel |
Um nur die unterschiedlichen Werte zu sehen. Verwenden Sie das Schlüsselwort DISTINCT in Ihrer SELECT-Klausel. | Wenn Ihre Kunden beispielsweise aus mehreren unterschiedlichen Filialen stammen und einige die gleiche Telefonnummer haben und Sie eine Telefonnummer nur einmal aufgelistet sehen möchten, würde Ihre SELECT-Klausel so aussehen: SELECT DISTINCT [txtKundenTelefon] |
Um die Darstellung einer Kennung in der Datenblattansicht zu ändern, 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 verbessern. | SELECT [txtCustPhone] AS [Kundentelefon] |
Anpassen der FROM-Klausel
Anpassen | Beispiel |
Sie können einen Tabellenaliasnamen 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 mehrere Felder mit demselben Namen aus verschiedenen Tabellen haben. | So wählen Sie Daten aus zwei Feldern mit dem Namen ID aus, von denen eines aus der Tabelle tblCustomer und das andere aus der Tabelle tblOrder stammt: SELECT [tblKunde].[ID], Verwenden Sie den AS-Operator, um Tabellenaliase in der FROM-Klausel zu definieren: VON [tblKunde] AS [C], Sie können diese Tabellenaliase dann wie folgt in Ihrer SELECT-Klausel verwenden: WÄHLE [C].[ID], |
Verwenden Sie Verknüpfungen, um Datensatzpaare aus zwei Datenquellen zu einem einzigen Ergebnis zu kombinieren oder um anzugeben, ob Datensätze aus einer der Tabellen eingeschlossen werden sollen, wenn es keinen entsprechenden Datensatz in der verknüpften Tabelle gibt. 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 | So könnte die FROM-Klausel aussehen: VON [tblKunde] |
Über die Verwendung von Joins
Es gibt zwei Arten von Joins, innere und äußere Joins. Inner Joins sind häufiger in Abfragen. Wenn Sie eine Abfrage mit einem Inner Join ausführen, zeigt das Ergebnis nur die Elemente an, bei denen ein gemeinsamer Wert in beiden verknüpften Tabellen vorhanden ist.
Outer Joins geben an, ob Daten eingeschlossen werden sollen, bei denen kein gemeinsamer Wert vorhanden ist. Äußere Joins sind gerichtet, d. h. Sie können angeben, ob alle Datensätze aus der ersten im Join angegebenen Tabelle (als Left Join bezeichnet) oder alle Datensätze aus der zweiten Tabelle (als Right Join bezeichnet) in den Join eingeschlossen werden sollen. Ein äußerer Join hat die folgende SQL-Syntax:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2
Weitere Informationen zur Verwendung von Joins in einer Abfrage finden Sie unter Tabellen und Abfragen verknüpfen .
Anpassen der WHERE-Klausel
Die WHERE-Klausel enthält Kriterien, die dabei helfen, die Anzahl der in einer Abfrage zurückgegebenen Elemente zu begrenzen. Sehen Sie sich Beispiele für Abfragekriterien und ihre 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 finden und können sich nur an seinen Nachnamen als Bagel erinnern. In diesem Beispiel werden die Nachnamen in einem LastName-Feld gespeichert, die SQL-Syntax wäre also:
WHERE [LastName]='Bagel'
Verwenden Sie die WHERE-Klausel auch zum Kombinieren von Datenquellen für Spalten mit übereinstimmenden Daten, aber unterschiedlichen Datentypen. 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 beispielsweise Daten aus einer Vermögenstabelle und einer Mitarbeitertabelle nur dann verwenden möchten, wenn der Vermögenstyp im Feld „Vermögenstyp" der Tabelle „Vermögen" die Zahl 3 im Feld „Menge" der Tabelle „Mitarbeiter" hat, lautet Ihre WHERE-Klausel wie folgt würde aussehen:
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. Stattdessen verwenden Sie eine HAVING-Klausel, um Kriterien für aggregierte Felder anzugeben.
Anpassen mit dem UNION-Operator
Verwenden Sie den UNION-Operator, wenn Sie eine kombinierte Ansicht der Ergebnisse mehrerer ähnlicher Auswahlabfragen anzeigen möchten. Zum Beispiel, wenn Ihre Datenbank eine Produkttabelle und eine Dienstleistungstabelle hat und beide drei Felder haben: exklusives Angebot oder Produkt oder Service, Preis, Gewährleistung oder Garantie. Obwohl die Tabelle „Products" Garantieinformationen und die Tabelle „Services" Garantieinformationen speichert, sind die grundlegenden Informationen dieselben. Sie können eine Union-Abfrage verwenden, um die drei Felder aus den beiden Tabellen wie folgt zu kombinieren:
SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT 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 aufzunehmen.
Hinweis: Die Select-Anweisung muss die gleiche Anzahl von Ausgabefeldern in der gleichen Reihenfolge und mit den gleichen oder kompatiblen Datentypen haben. Für eine 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 .
No comments:
Post a Comment