SQL-Befehle von MapInfo

Die SQL-Sprache von MapInfo basiert auf den SQL-3- und SQL/MM-Standards. Zeichenfolgenliterale müssen in einfachen Anführungszeichen ('Beispiel') eingeschlossen werden, während Bezeichner (Spaltennamen, Tabellennamen, Aliase usw.) bei Bedarf in doppelten Anführungszeichen ("Beispielbezeichner") eingeschlossen werden müssen. Bezeichner müssen nur dann in Anführungszeichen gesetzt werden, wenn die Parsing-Logik den Bezeichner nicht korrekt parsen kann. Darin eingeschlossen sind beispielsweise Bezeichner mit Leerzeichen im Namen oder anderen Sonderzeichen. Weitere Informationen finden Sie unter Regeln für Anführungszeichen.

In Spectrum Spatial setzt sich die MapInfo SQL-Sprache aus den folgenden Befehlen zusammen:

Auswählen


				
SELECT < select_list >
	FROM { < table_source > } [ ,...n ]
	[ WHERE < search_condition > ]
	[ GROUP BY expression [ ,...n ] ]
	[ ORDER BY < column_position | column_name > [ ASC | DESC ]  [ ,...n ]]
	[ LIMIT positive_integer ]
	[ OFFSET positive_integer ]


	< select_list > ::=
		{
			*
			| { table_name | table_alias }.*
			| { expression } [ [ AS ] column_alias ]
		} [ ,...n ]

	< table_source > ::=
		table_name [ [ AS ] table_alias ]
				
			
Anmerkung: Auf einem Raster, einer Geometrie, einem Stil oder einer binären Spalte können Sie keine ORDER BY- oder GROUP BY-Vorgänge ausführen.
Anmerkung: NULL-Werte für ORDER BY ASC werden in der Sortierung unten angezeigt. ORDER BY DESC-Werte werden oben angezeigt.

Aktualisieren

				
   UPDATE <table_name>
           SET {column_name = expression} [ ,…n]
           [ WHERE < search_condition > ]
           [ COMMIT_INTERVAL = integer ]
Verwenden Sie beispielsweise die folgende Zeichenfolge, um eine Spalte mit der Bezeichnung DENSITY in allen Bundesstaaten zu aktualisieren:
UPDATE STATES set DENSITY = POP_1990 / MI_AREA(obj, 'sq mi', 'Spherical')
Wenn Sie die Spalte DENSITY für bestimmte Staaten aktualisieren möchten, fügen Sie eine WHERE-Klausel hinzu:
UPDATE STATES set DENSITY = POP_1990 / MI_AREA(obj, 'sq mi', 'Spherical') WHERE STATE_NAME in ('New York', 'New Jersey')
Sie können außerdem ein Übergabeintervall (die Anzahl der Änderungen, die als Batch in einer Transaktion übergeben wurden) festlegen:
UPDATE STATES set DENSITY = POP_1990 / MI_AREA(obj, 'sq mi', 'Spherical') COMMIT_INTERVAL 30 

Einfügen


				
INSERT [INTO] { table_name } [ ( column_list ) ]
{ VALUES ({expression | NULL}[, ...n]) | query_specification
				
			

Löschen


				
DELETE [FROM] { table_name } [ WHERE < search_condition > ]

	< search_condition > ::=
		{ [ NOT ] < predicate > | ( < search_condition > ) }
			[ { AND | OR } [ NOT ] { < predicate > | ( < search_condition > ) }  [ ,...n ] ]

	< predicate > ::=
		{
			expression [ { = | < > | != | > | >= | < | <= } expression ]
			| string_expression [ NOT ] LIKE string_expression [ ESCAPE 'escape_character' ]
			| expression [ NOT ] BETWEEN expression AND expression
			| expression IS [ NOT ] NULL
		}
				
			

expression bezeichnet Spaltennamen, Pseudospalten, Spaltenaliase, Funktionen, oder eine beliebige Kombination von Spaltennamen, Spaltenaliasen, Konstanten und Funktionen, die durch einen oder mehrere Operatoren verknüpft ist. Spaltennamen und Pseudospalten kann ein Tabellenname oder ein Tabellenalias gefolgt von dem Punktzeichen („.“) vorangestellt werden.

search_condition ist ein Verweis auf einen Ausdruck, der entweder „True“ oder „False“ ergibt. Die meisten Funktionen in diesem Dokument können in Suchbedingungen verwendet werden. Aggregationsfunktionen werden für diese Verwendung jedoch nicht unterstützt.

group_by_expression ist ein Verweis auf eine Spalte in der Auswahlliste: Dieser ist entweder eine genaue Kopie des Auswahllistenausdrucks, das Alias, eine auf 1 basierende Zahl, welche die Position der Spalte angibt, oder „coln“, wobei n eine Zahl ist, die eine Spalte darstellt.

order_by_expression ist ein Verweis auf eine Spalte in der Auswahlliste: Dieser ist entweder eine genaue Kopie des Auswahllistenausdrucks, das Alias, eine auf 1 basierende Zahl, welche die Position der Spalte angibt, oder „coln“, wobei n eine Zahl ist, die eine Spalte darstellt.