Commandes SQL MapInfo

Le langage SQL MapInfo repose sur les normes SQL-3 et SQL/MM. Les littéraux de chaîne doivent être compris entre guillemets simples ('exemple'), alors que les identifiants (noms de colonne, noms de table, alias, etc.) doivent être compris entre guillemets doubles ("exemple d'identifiant") si nécessaire. Les identifiants ne doivent être placés entre guillemets que si la logique d'analyse ne parvient pas à analyser correctement l'identifiant. Cela inclurait les identifiants présentant des espaces dans leur nom ou d'autres caractères spéciaux. Pour plus d'informations, reportez-vous à la section Règles des guillemets.

Dans Spectrum Spatial, le langage SQL MapInfo est constitué des commandes suivantes :

Sélectionner


				
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 ]
				
			
Remarque : Vous ne pouvez pas effectuer d'opération ORDER BY ou GROUP BY sur une colonne raster, de géométrie, de style ou binaire.
Remarque : Les valeurs NULL pour ORDER BY ASC se trouvent au bas de l'ordre de tri. Les valeurs ORDER BY DESC se trouve en haut de l'ordre de tri.

Mettre à jour

				
   UPDATE <table_name>
           SET {column_name = expression} [ ,…n]
           [ WHERE < search_condition > ]
           [ COMMIT_INTERVAL = integer ]
Par exemple, pour mettre à jour une colonne appelée DENSITY dans tous les états, utilisez la chaîne suivante :
UPDATE STATES set DENSITY = POP_1990 / MI_AREA(obj, 'sq mi', 'Spherical')
Si vous souhaitez mettre à jour la colonne DENSITY de certains états, ajoutez une clause WHERE :
UPDATE STATES set DENSITY = POP_1990 / MI_AREA(obj, 'sq mi', 'Spherical') WHERE STATE_NAME in ('New York', 'New Jersey')
Vous pouvez également spécifier un intervalle de validation (le nombre de modifications validées sous forme de lot dans une transaction) :
UPDATE STATES set DENSITY = POP_1990 / MI_AREA(obj, 'sq mi', 'Spherical') COMMIT_INTERVAL 30 

Insérer


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

Supprimer


				
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 est un nom de colonne, une colonne de pseudo, un alias de colonne, une constante, une fonction ou toute combinaison de noms de colonne, d'alias de colonne, de constantes et de fonctions connectées par un opérateur. Les noms de colonne et colonnes de pseudo peuvent être dotés d'un nom de table ou d'un alias de table suivi par le caractère point (".") en préfixe.

search_condition est une référence à une expression qui résulte en la valeur true ou false. La plupart des fonctions dans ce document peuvent être utilisées dans les conditions de recherche, mais les fonctions d'agrégation ne sont pas prises en charge pour cette utilisation.

group_by_expression est une référence à une colonne dans la liste de sélection, une copie exacte de l'expression de liste de sélection, l'alias, un nombre basé sur 1 indiquant la position de la colonne, ou une colonne où n est un nombre représentant une colonne.

order_by_expression est une référence à une colonne dans la liste de sélection, une copie exacte de l'expression de liste de sélection, l'alias, un nombre basé sur 1 indiquant la position de la colonne, ou une colonne où n est un nombre représentant une colonne.