Skip To Content

Erstellen einer Abfrage im Abfrage-Manager

Abfragen werden verwendet, um eine Teilmenge von Features und Tabellendatensätze auszuwählen. Alle Abfrageausdrücke in ArcGIS Pro verwenden Structured Query Language (SQL), um diese Suchspezifikationen zu formulieren. SQL muss beispielsweise beim Erstellen einer Abfrage mit dem Geoverarbeitungswerkzeug "Layer nach Attributen auswählen" oder beim Erstellen einer Definitionsabfrage für einen Layer oder eine Tabelle verwendet werden.

Zwei Möglichkeiten, Abfragen im Abfrage-Manager einzugeben

Der Abfrage-Manager verfügt über zwei Optionen zum Erstellen von SQL-Abfragen. Sie können im selben Dialogfeld (bzw. Bereich, falls Sie den Geoverarbeitungsbereich Nach Attributen auswählen verwenden) zwischen den Modi wechseln. Der Abfrage-Manager wird standardmäßig im Modus "Klausel" geöffnet und ist damit unabhängig vom Kenntnisstand zugänglich. Dank der Schaltflächen sind weniger manuelle Eingaben und Kenntnisse zur SQL-Syntax erforderlich. Der SQL-Bearbeitungsmodus ist für erfahrenere Benutzer konzipiert, die Anweisungen direkt eingeben möchten. Dies bedeutet auch weniger Einschränkungen beim Erstellen der Anweisung. Klicken Sie auf die Schaltfläche SQL-Bearbeitung SQL-Abfrage, um Ihre Abfrage zu erstellen, indem Sie die SQL-Syntax direkt eingeben.

Klausel-Modus

Der Abfrage-Manager wird standardmäßig im Modus "Klausel" geöffnet. Er ermöglicht Ihnen, ähnlich wie ein Assistent, Abfragen mittels Schaltflächen und Listen zu erstellen. Die zur Verfügung stehenden Optionen werden basierend auf dem ausgewählten Feldtyp befüllt und vorgefiltert. Die Verwendung des Modus "Klausel" bietet folgende Vorteile:

  • Sie können gültige SQL-Abfragen unabhängig von der Datenquelle erstellen.
  • Sie können allgemeine Abfragen ohne Vorkenntnisse in SQL erstellen.
  • Die konditionalen Operatoren werden nach dem ausgewählten Feldtyp gefiltert.
  • Die Gruppierung kann einfach angewendet werden, um die Reihenfolge der Operationen zu verbessern.

Dies macht es Ihnen leicht, Abfragen für Zeichenfolgen, numerische und Datumsfelder zu erstellen. Der Modus "Klausel" ist jedoch auf die erstellbaren Abfragetypen beschränkt. Wenn Sie eine Abfrage ohne Einschränkung erstellen möchten, verwenden Sie den SQL-Bearbeitungsmodus.

Um eine vorhandene Klausel zu bearbeiten oder zu entfernen, können Sie mit der Maus auf die Klausel zeigen und auf Klausel bearbeiten Klausel bearbeiten oder Klausel entfernen Klausel entfernen klicken. Nachdem Ihre Klausel aktualisiert wurde, können Sie die Änderungen übernehmen, indem Sie auf Aktualisieren klicken, oder alle Änderungen verwerfen, indem Sie auf Abbrechen klicken.

SQL-Bearbeitungsmodus

Wenn Sie Erfahrung mit der Verwendung von SQL haben, ist es möglicherweise effizienter, im Abfrage-Manager den SQL-Bearbeitungsmodus zu verwenden. Der Hauptvorteil gegenüber dem Modus "Klausel" besteht darin, dass der SQL-Bearbeitungsmodus Folgendes bietet:

  • Erstellen von Abfragen ohne Einschränkungen
  • Unterstützung für Autovervollständigung, damit Abfragen schnell erstellt werden können. Während der Eingabe wird eine Eingabeaufforderung angezeigt, die nur Schlüsselwörter und Operatoren anzeigt, die von der Datenquelle unterstützt werden.
  • Farbcodierte Elemente zur besseren visuellen Überprüfung und Änderung der Abfrage

Wenn Sie häufig mit Datenbanken arbeiten, haben Sie möglicherweise bereits Erfahrungen mit SQL und sind mit den beiden zentralen Aspekten, der SELECT-Anweisung und der WHERE-Klausel, vertraut:

  • Die SELECT-Anweisung wird verwendet, um Felder aus einem Layer oder einer Tabelle auszuwählen.
  • Mit der WHERE-Klausel werden Datensätze abgerufen, die bestimmte Kriterien erfüllen.

Wenn Sie mit dem Abfrage-Manager arbeiten, wird die SELECT-Anweisung als "SELECT * FROM" Layer oder Tabelle bereitgestellt. Dies bedeutet, dass alle Felder in der Abfrage an die Datenquelle gesendet werden. Sie müssen die WHERE-Klausel bereitstellen und entscheiden, welche Kriterien für die Abfrage wichtig sind. Beachten Sie, dass Sie möglicherweise nicht zum Modus "Klausel" zurückkehren können, um die Erstellung der Abfrage fortzusetzen, da der SQL-Bearbeitungsmodus die Verwendung sämtlicher SQL-Schlüsselwörter und -Funktionen ermöglicht. Es ist außerdem nicht erforderlich, die Felder mit Sonderzeichen zu trennen. ArcGIS Pro formatiert alle Abfrageausdrücke, bevor Sie an die Datenquelle gesendet werden.

Hinweis:

Beim Erstellen eines Abfrage-Layers müssen Sie die SELECT-Anweisung einbeziehen. Dies ist der einzige Fall, in dem Sie eine SELECT-Anweisung in die SQL-Abfrage einfügen müssen.

SQL-Syntax

Im SQL-Bearbeitungsmodus müssen Sie die geeignete SQL-Syntax verwenden, wenn Sie eine Abfrage bilden, um der Datenquelle mitzuteilen, welche Datensätze zurückgegeben werden sollen. Es ist nicht erforderlich, die Felder mit Sonderzeichen zu trennen. ArcGIS Pro formatiert alle Abfrageausdrücke, bevor Sie an die Datenquelle gesendet werden. Abfragen sind im Allgemeinen einfach oder zusammengesetzt. Eine einfache Abfrage mit der hart codierten SELECT-Anweisung und WHERE-Klausel sieht dann folgendermaßen aus:

Beispiel für eine einfache Abfrage: STATE_NAME = 'Alabama'

Hiermit werden die Features ausgewählt, die in der Datei STATE_NAME den Wert "Alabama" enthalten.

Eine zusammengesetzte Abfrage ist eine einfache Abfrage mit mehreren Klauseln, die durch logische Operatoren (AND, OR) verbunden sind. In zusammengesetzten Abfragen können Klauseln auch in Klammern gesetzt werden, um die Reihenfolge der Operationen zu definieren.

Beispiel für eine zusammengesetzte Abfrage: STATE_NAME = 'Alabama' OR (STATE_NAME = 'Wyoming' AND POP2000 > 10000)

Hiermit werden die Features ausgewählt, die im Feld STATE_NAME den Wert "Alabama" enthalten, und die Features, die sowohl "Wyoming" im Feld STATE_NAME als auch einen Wert größer 10.000 im Feld POP2000 enthalten.

Tipp:

Da die SELECT-Anweisung hart codiert ist, können Sie die Abfrage nicht auf die Auswahl aus einer Teilmenge von Feldern einschränken. Aus diesem Grund können Schlüsselwörter wie DISTINCT, ORDER BY und GROUP BY nur unter Einbeziehung von Unterabfragen verwendet werden, wobei es sich um Abfragen handelt, die in einer anderen Abfrage geschachtelt sind. Weitere Informationen zu Elementen, die in Abfragen verwendet werden, finden Sie im SQL-Referenzhandbuch.

Die verwendete SQL-Syntax variiert je nach Datenquelle. Jedes Datenbankmanagementsystem (DBMS) hat einen eigenen SQL-Dialekt. Zur Abfrage dateibasierter Daten, z. B. aus File-Geodatabases, Shapefiles, dBASE-Tabellen sowie CAD- und VFP-Daten, verwenden Sie den ArcGIS-SQL-Dialekt, der einen Teil der SQL-Funktionen unterstützt. Um eine Enterprise-Geodatabase abzufragen, verwenden Sie die SQL-Syntax des zugrunde liegenden DBMS (Oracle, SQL Server, PostgreSQL, DB2 oder Informix). Das gleiche gilt, wenn Sie direkt auf eine Datenbank (wie Netezza) zugreifen.

Beachten Sie, dass Sie möglicherweise nicht zum Modus "Klausel" zurückkehren können, um die Erstellung der Abfrage fortzusetzen, da der SQL-Bearbeitungsmodus die Verwendung sämtlicher SQL-Schlüsselwörter und -Funktionen ermöglicht. Sie erhalten die folgende Warnung, wenn der SQL-Ausdruck erweitert wird und Sie versuchen, zum Modus "Klausel" zurückzukehren:

Warnung Der Ausdruck kann im Klausel-Modus nicht bearbeitet werden.

Zugreifen auf den Ausdruck-Generator für Definitionsabfragen

Es gibt verschiedene Möglichkeiten, Zugriff auf den Abfrage-Manager zu erhalten, wenn Sie eine Abfrage für den Feature-Layer oder Tabellendatensätze ausführen möchten. Hierzu zählt Folgendes:

  • Verwenden Sie das Dialogfeld Layer-Eigenschaften. Klicken Sie im Bereich Inhalt mit der rechten Maustaste auf einen Layer, und klicken Sie auf Eigenschaften, um das Dialogfeld Layer-Eigenschaften zu öffnen. Klicken Sie auf der Seite Definitionsabfrage zunächst auf Klausel hinzufügen.
  • Öffnen Sie den Ausdruck-Generator für Definitionsabfragen direkt über das Menüband. Klicken Sie für einen ausgewählten Feature-Layer auf die Registerkarte Daten und dann auf das Startprogramm für das Dialogfeld Startprogramm, um die Seite Definitionsabfrage im Dialogfeld Layer-Eigenschaften zu öffnen und den Abfrageausdruck einzugeben.
  • Verwenden Sie den Bereich des Geoverarbeitungswerkzeugs Nach Attributen auswählen. Geben Sie einen SQL-Ausdruck ein, um eine Feature-Teilmenge für den Layer oder die Tabelle zu generieren. Klicken Sie auf der Registerkarte Karte in der Gruppe Auswahl auf Nach Attributen auswählen Nach Attributen auswählen, um den Geoverarbeitungsbereich zu öffnen.

Überprüfen eines Ausdrucks

Sie können den Ausdruck jederzeit sowohl im Modus "Klausel" als auch im SQL-Bearbeitungsmodus überprüfen, indem Sie auf Überprüfen Überprüfen klicken, um zu ermitteln, ob der Ausdruck gültig ist. Als Ergebnis der Überprüfung wird ggf. die erfolgreiche Überprüfung, eine Warnung oder eine Fehlermeldung angezeigt.

  • Erfolgreich überprüft: Der SQL-Ausdruck ist gültig. Dies bedeutet, dass die Syntax gültig ist und mindestens ein Feature mit der Abfrage zurückgegeben wird.
  • Warnung: Der SQL-Ausdruck ist gültig, es wurden jedoch keine Datensätze zurückgegeben. Dies bedeutet, dass die Syntax gültig ist, jedoch keine Zeilen oder Features mit der Abfrage zurückgegeben werden.
  • Fehler: Der SQL-Ausdruck hat eine ungültige Syntax. Dieses Ergebnis sollte nur im SQL-Bearbeitungsmodus auftreten, da der Modus "Klausel" die Erstellung eines Ausdrucks mit ungültiger Syntax verhindert.

Tipp:

Ein Ausdruck kann jederzeit über die Schaltfläche Löschen gelöscht Löschen werden. Dabei werden alle Klauseln im Modus "Klausel" und der Ausdruck im SQL-Bearbeitungsmodus gelöscht.

Speichern und Laden von Ausdrücken

Ausdrücke können in einer Textdatei gespeichert werden. Beim Laden eines Ausdrucks wird der Abfrage-Manager standardmäßig auf den Modus "Klausel" festgelegt, wenn es sich um einen einfachen Ausdruck handelt, der im Modus "Klausel" überprüft werden kann. Andernfalls wird der Ausdruck im SQL-Bearbeitungsmodus angezeigt. Die Schaltflächen Laden Durchsuchen und Speichern Speichern zum Laden oder Speichern eines Ausdrucks befinden sich in der unteren Ecke des Fensters "Ausdruck-Generator" neben Überprüfen Überprüfen und Löschen Löschen.

Verwandte Themen