SQL-Referenz für File-Geodatabases
Mithilfe von SQL-Abfragen können Sie auf Daten in einer File-Geodatabase zugreifen oder diese analysieren.
Die folgenden Abschnitte enthalten Beschreibungen und Beispiele für SQL-Ausdrücke, Funktionen, Operatoren, Schlüsselwörter und Klauseln, die zum Abfragen von Tabellen, Feature-Classes und Sichten in File-Geodatabases verwendet werden können.
Alias
Mit dem Schlüsselwort AS können Sie einen Alias für einen Feld- bzw. Tabellennamen oder die durch die SQL-Abfrage zurückgegebenen Werte angeben. Dadurch entsteht eine verständlichere Ausgabe.
Im folgenden Beispiel für die Verwendung des Schlüsselwortes AS werden die Ergebnisse der Subtraktion der Werte in der Spalte "POP1990" von den Werten in der Spalte "POP1997" unter dem Alias "PopChange" zurückgegeben.
SELECT COUNTY_NAME, POP1997 - POP1990 AS PopChange
FROM counties
ORDER BY COUNTY_NAME
CASE-Ausdrücke
Ein CASE -Ausdruck wertet eine Liste bestimmter Bedingungsausdrücke aus und gibt Ergebnisse basierend auf diesen Ausdrücken zurück.
Die folgende Anweisung enthält die Bedingungen in einem CASE -Ausdruck, der in Abhängigkeit von den Werten für das Gehalt ("salary") eines der Wörter "low", "average" und "high" zurückgibt.
SELECT name,salary,
CASE
WHEN salary <= 2000 THEN 'low'
WHEN salary > 2000 AND salary <= 3000 THEN 'average'
WHEN salary > 3000 THEN 'high'
END AS salary_level
FROM employees
Funktionen
Die folgende Liste enthält Funktionen, die von File-Geodatabases unterstützt werden.
Datumsfunktionen
Datumsfunktionen geben Datums- und Uhrzeitwerte zurück.
|
|
Gibt das aktuelle Datum zurück, das durch das Betriebssystem des Computers, auf dem Sie die SQL-Abfrage ausführen, bereitgestellt wird. |
|
|
Gibt den Teil des Datums-/Uhrzeitausdrucks (der mit Das Argument |
|
|
Gibt die aktuelle Uhrzeit zurück, die durch das Betriebssystem des Computers, auf dem Sie die SQL-Abfrage ausführen, bereitgestellt wird. |
|
|
Gibt das aktuelle Datum mit Uhrzeit zurück, das durch das Betriebssystem des Computers, auf dem Sie die SQL-Abfrage ausführen, bereitgestellt wird. |
Numerische Funktionen
Numerische Funktionen führen Operationen an numerischen Werten aus. Bei allen Zahlenfunktionen wird ein numerischer Wert zurückgegeben.
Bei den Argumenten, die als numeric_exp, float_exp oder integer_exp aufgeführt sind, kann es sich um den Namen einer Spalte, das Ergebnis einer anderen Skalarfunktion oder ein numerisches Literal handeln, wobei der zugrunde liegende Datentyp als numerischer Typ dargestellt werden kann.
|
|
Gibt den absoluten Wert der Zahl zurück, die mit dem Argument |
|
|
Gibt den Arkuskosinus-Wert der Zahl zurück, die mit dem Argument |
|
|
Gibt den Arkussinus-Wert der Zahl zurück, die mit dem Argument |
|
|
Gibt den Arkustangens-Wert der Zahl zurück, die mit dem Argument |
|
|
Gibt die kleinste ganze Zahl zurück, die größer als oder gleich dem Wert ist, der im Argument |
|
|
Gibt den Kosinus-Wert des Winkels (in Radiant) zurück, der im Argument |
|
|
Gibt die größte ganze Zahl zurück, die kleiner als oder gleich der Zahl ist, die im Argument |
|
|
Gibt den natürlichen Logarithmus des Wertes zurück, der im Argument |
|
|
Gibt den Logarithmus zur Basis 10 des Wertes zurück, der im Argument |
|
|
Dividiert den Wert von |
|
|
Gibt den Wert von |
|
|
Gibt den Wert von Wenn der mit |
|
|
Gibt einen Indikator des Vorzeichens (negativ, positiv oder Null) des Wertes zurück, der im Argument Wenn der Wert von |
|
|
Gibt den Sinus des Wertes von |
|
|
Gibt den Tangens des Wertes von |
|
|
Gibt den Wert von |
Zeichenfolgenfunktion
Zeichenfolgenfunktionen führen Operationen an Zeichenfolgenwerten (Textzeichen) aus.
Bei den Argumenten, die als string_exp aufgeführt sind, kann es sich um den Namen einer Spalte, ein Zeichenfolgenliteral oder das Ergebnis einer anderen Skalarfunktion handeln, wobei der zugrunde liegende Datentyp als Zeichentyp dargestellt werden kann.
Bei Argumenten, die als character_exp aufgeführt sind, handelt es sich um Zeichenfolgen mit variabler Länge.
Bei Argumenten, die als start oder length aufgeführt sind, kann es sich um ein numerisches Literal oder das Ergebnis einer anderen Skalarfunktion handeln, wobei der zugrunde liegende Datentyp als numerischer Typ dargestellt werden kann.
Diese Zeichenfolge-Funktionen basieren auf 1, d. h. beim ersten Zeichen der Zeichenfolge handelt es sich um das Zeichen 1.
|
|
Gibt die Länge des String-Ausdrucks in Zeichen zurück. |
|
|
Gibt eine Zeichenfolge zurück, die sich aus der Verkettung des Textes in |
|
|
Gibt eine Zeichenfolge zurück, die mit der im Argument |
|
|
Gibt die Position des ersten Zeichenausdrucks im zweiten Zeichenausdruck zurück. Das Ergebnis ist eine genaue Zahl mit einer implementationsdefinierten Genauigkeit und der Anzahl der Dezimalstellen von 0. |
|
|
Gibt eine Zeichenfolge zurück, die aus dem Text im Argument |
|
|
Gibt den im Argument |
|
|
Gibt eine Zeichenfolge zurück, die mit der im Argument |
Aggregatfunktionen
Verwenden Sie eine Aggregatfunktion zum Durchführen einer Berechnung an einer Gruppe bestimmter Werte, wenn als Ergebnis dieser Berechnung ein einzelner Wert zurückgegeben werden soll.
|
|
Berechnet den Durchschnitt aller Werte in der Gruppe. NULL-Werte werden ignoriert. |
|
|
|
|
|
Gibt den Maximalwert in der Gruppe zurück. NULL-Werte werden ignoriert. |
|
|
Gibt den Minimalwert in der Gruppe zurück. NULL-Werte werden ignoriert. |
|
|
Gibt die Stichprobenstandardabweichung des Ausdrucks zurück. |
|
|
Gibt die Populationsstandardabweichung des Ausdrucks zurück. |
|
|
Addiert die Werte in der Gruppe und gibt diese Summe als Ergebnis zurück. NULL-Werte werden ignoriert. |
|
|
Gibt die Stichprobenvarianz des Ausdrucks zurück. |
|
|
Gibt die Populationsvarianz des Ausdrucks zurück. |
COALESCE
Die Funktion COALESCE gibt den ersten Nicht-NULL-Feldwert unter den Argumenten zurück.
SELECT Name, COALESCE(Business_Phone, Cell_Phone, Home_Phone)
Contact_Phone
FROM Contact_Info
Das folgende Beispiel zeigt Datensätze aus der Tabelle "Contact_Phone" in der Geodatabase:
|
Name |
Business_Phone |
Cell_Phone |
Home_Phone |
|---|---|---|---|
|
Jeff |
531-2531 |
622-7813 |
565-9901 |
|
Laura |
|
772-5588 |
312-4088 |
|
Peter |
|
|
594-7477 |
Mit der Funktion COALESCE im Ausdruck entsteht die folgende Ausgabe:
|
Name |
Contact_Phone |
|---|---|
|
Jeff |
531-2531 |
|
Laura |
772-5588 |
|
Peter |
594-7477 |
NULLIF
Die Funktion NULLIF gibt NULL zurück, wenn die zwei angegebenen Parameter gleich sind. Andernfalls wird der Wert des ersten Parameters zurückgegeben.
SELECT Location, NULLIF(Sales, Forecast) AS Results
FROM StoreSales
Das folgende Beispiel zeigt Werte in den Feldern "Location", "Sales" und "Forecast" der Tabelle "StoreSales":
|
Position |
Sales |
Forecast |
|---|---|---|
|
Redlands |
39000 |
55000 |
|
Palm Springs |
60000 |
61000 |
|
Riverside |
40000 |
40000 |
Bei Ausführung des Ausdrucks mit der Funktion NULLIF an der Tabelle "StoreSales" werden die folgenden Ergebnisse zurückgegeben:
|
Position |
Ergebnisse |
|---|---|
|
Redlands |
39000 |
|
Palm Springs |
60000 |
|
Riverside |
NULL |
Klauseln
Klauseln wirken als Filter, die die Ergebnisse eines Abfrageausdrucks beschränken, ordnen oder ändern.
GROUP BY
Die GROUP BY -Klausel wird zum Sammeln von Daten aus mehreren Datensätzen und Gruppieren der Ergebnisse nach einer oder mehreren Spalten verwendet.
Mit der folgenden Anweisung werden alle Werte im Feld "POP1990" in der Tabelle der Countys zusammengefasst (addiert) und die Werte nach Bundesstaat gruppiert: Die Werte werden auch in aufsteigender alphabetischer Reihenfolge nach Name des Bundesstaates zurückgegeben.
SELECT state_name, SUM(POP1990) AS TotalPopulation
FROM counties
GROUP BY STATE_NAME
ORDER BY STATE_NAME
GROUP BY -Klauseln können Aggregationsfunktionen, wie zum Beispiel MIN, MAX und SUM, enthalten.
HAVING
Verwenden Sie die HAVING -Klausel mit Aggregationsfunktionen anstelle einer WHERE -Klausel.
Im folgenden Beispiel wird die Aggregationsfunktion MAX verwendet, um das höchste Gehalt, das in der Tabelle der Mitarbeiter gespeichert ist, zurückzugeben. Die HAVING -Klausel beschränkt diesen Wert auf den Maximalwert unter 50000.
SELECT department, MAX(salary) AS Highest_salary
FROM employees
GROUP BY department HAVING MAX(salary) < 50000
JOIN-Klauseln
JOIN -Klauseln geben die kombinierten Datensätze aus zwei oder mehr Tabellen zurück.
CROSS JOIN
Im folgenden Beispiel werden Paare aus jeder Zeile in Tabelle 1 mit jeder Zeile in Tabelle 2 und aus jeder Zeile in Tabelle 2 mit jeder Zeile in Tabelle 1 zurückgegeben. Wenn Tabelle 1 100 Zeilen und Tabelle 2 1000 Zeilen enthält, werden 100000 Zeilen zurückgegeben. Verbindungen dieses Typs sollten mit Vorsicht verwendet werden, da die Anzahl der zurückgegebenen Zeilen sehr schnell sehr groß werden kann.
SELECT Table1.name, Table1.Address, Table2.name, Table2.Salary
FROM Table1
CROSS JOIN Table2
INNER JOIN
Bei der folgenden Anweisung werden die Zeilen aus beiden Tabellen zurückgegeben, wenn die Schlüsselwerte (Table1.C1, Table2.C3) übereinstimmen. In diesem Fall werden keine anderen Zeilen aus einer der Tabellen zurückgegeben.
SELECT Table1.C1, Table1.C2, Table2.C3, Table2.C4
FROM Table1
INNER JOIN Table2 ON Table1.C1 = Table2.C3
LEFT OUTER JOIN
Bei der folgenden Anweisung werden alle Zeilen aus der linken Tabelle (Table1) und nur die Zeilen aus der rechten Tabelle (Table2), wenn die Schlüsselwerte (Table1.C1, Table2.C3) übereinstimmen, zurückgegeben.
SELECT Table1.C1, Table1.C2, Table2.C3, Table2.C4
FROM Table1
LEFT OUTER JOIN Table2 ON Table1.C1 = Table2.C3
RIGHT OUTER JOIN
Bei dieser Anweisung werden alle Zeilen aus der rechten Tabelle (Table2) und nur die Zeilen aus der linken Tabelle (Table1), wenn die Schlüsselwerte (Table1.C1, Table2.C3) übereinstimmen, zurückgegeben.
SELECT * FROM Table1
RIGHT OUTER JOIN Table2 ON Table1.C1 = Table2.C3
ORDER BY
Die ORDER BY -Klausel gibt die Sortierreihenfolge an. Die Sortierung kann in aufsteigender (ASC) oder absteigender (DESC) Reihenfolge erfolgen. Standardmäßig werden die Werte in aufsteigender Reihenfolge sortiert.
Wenn Sie die ORDER BY -Klausel verwenden, dann können Sie auch eine Sortierung angeben. Für den Typ der Sortierung können die folgenden Argumente verwendet werden:
BINARY(BIN): Bei der BINARY-Sortierung werden sowohl die Groß- und Kleinschreibung als auch Zeichen mit Akzenten berücksichtigt. Wenn Sie für die Sortierung dieses Argument verwenden, dann stehen in der Sortierung in aufsteigender Reihenfolge die Kleinbuchstaben vor ihren Versionen in Großschreibung und die Akzente vor den Buchstaben. Sie können entwederBINARYoderBINin der Abfrage angeben.CASESENSITIVE(CASE): Bei einer Sortierung mit Beachtung der Groß-/Kleinschreibung wird zwischen Groß- und Kleinbuchstaben unterschieden. Wenn Sie für die Sortierung dieses Argument verwenden, dann stehen in der Sortierung die Kleinbuchstaben vor ihren Versionen in Großschreibung. Sie können entwederCASESENSITIVEoderCASEin der Abfrage angeben.NOCASESENSITIVE(NOCASE): Da das ArgumentNOCASEnicht zwischen Groß- und Kleinbuchstaben unterscheidet, wird dieser Fall in der Sortierreihenfolge ignoriert. Sie können entwederNOCASESENSITIVEoderNOCASEin der Abfrage angeben.
Hinweis:
Beim Definieren einer Ansicht können Sie keine ORDER BY -Klausel verwenden.
Die folgenden Beispiele zeigen die Verwendung der ORDER BY -Klausel:
Die Werte werden in aufsteigender alphabetischer Reihenfolge nach Name des Bundesstaates zurückgegeben.
SELECT STATE_NAME, POP1990
FROM counties
ORDER BY STATE_NAME
Die Werte werden in absteigender alphabetischer Reihenfolge nach Name des Bundesstaates zurückgegeben, wobei die Namen in Großschreibung zuerst zurückgegeben werden.
SELECT STATE_NAME, POP1990
FROM counties
ORDER BY STATE_NAME
COLLATE CASE DESC
Operatoren
In File-Geodatabases werden die folgenden Operatoren unterstützt.
Arithmetische Operatoren
Verwenden Sie einen arithmetischen Operator zum Addieren, Subtrahieren, Multiplizieren und Dividieren von numerischen Werten.
|
* |
Arithmetischer Operator für die Multiplikation |
|
/ |
Arithmetischer Operator für die Division |
|
+ |
Arithmetischer Operator für die Addition |
|
|
Arithmetischer Operator für die Subtraktion |
SIMILAR TO
SIMILAR TO ist ein Vergleichsoperator, der Zeichenfolgenwerte auswertet und "true" oder "false" zurückgibt.
Die Abfrage im folgenden Beispiel wertet die Werte im Feld "state_name" aus und gibt true zurück, wenn einer der Werte in diesem Feld mit dem Wort "North" beginnt, oder gibt false zurück, wenn kein Wert im Feld "state_name" mit dem Wort "North" beginnt.
SELECT state_name
FROM counties
WHERE state_name SIMILAR TO 'North%'
Hinweis:
Bei Werten, die mit dem Wort "North" beginnen, wird im obigen Beispiel das Ergebnis false zurückgegeben, da beim Zeichenfolgenvergleich die Groß-/Kleinschreibung beachtet werden muss.