Colonnes de pseudo

Le langage MI SQL est un langage de requête puissant qui se base sur le langage SQL pour fournir des requêtes spatiales. Tout comme tous les autres dialectes SQL, MI SQL prend en charge les colonnes de pseudo. Ces colonnes de pseudo permettent d'établir facilement des requêtes. La casse des colonnes de pseudo n'est pas prise en compte et, sauf indication contraire, toutes les colonnes de pseudo peuvent être utilisées dans toutes les constructions d'une instruction MI SQL.

Obj

La colonne de pseudo Obj représente l'attribut spatial dans la source de données, quel que soit le nom de cet attribut spatial dans la source de données. Cette colonne de pseudo ne peut pas être utilisée avec les constructions ORDER BY, LIMIT et OFFSET d'une instruction MI SQL.

Exemples


; select the spatial attribute from all the features in the World 
; table
SELECT Obj FROM World
		
; select the spatial attribute from all features whose area is greater 
; than 1000 miles
SELECT Obj FROM World WHERE MI_AREA(Obj, 'sq mi', 'Spherical') > 1000
	

MI_GEOMETRY

Ceci est identique à la colonne de pseudo Obj. Il possède les mêmes fonctionnalités et restrictions qu'Obj.

Exemples


; select the spatial attribute from all the features in the World 
; table
SELECT mi_geometry FROM World

; select the spatial attribute from all features whose area is greater 
; than 1000 miles
SELECT mi_geometry FROM World WHERE MI_AREA(mi_geometry, 'sq
      mi', 'Spherical') > 1000
	

MI_STYLE

Dans MI SQL, le style est un type de données valide. La colonne de pseudo MI_STYLE représente l'attribut dans la source de données qui contient le style. L'attribut de style et, par conséquent, la colonne de pseudo MI_STYLE présentent certaines restrictions. Par exemple, vous ne pouvez pas les utiliser dans les clauses WHERE, ORDER BY, GROUP BY, LIMIT et OFFSET. Vous ne pouvez utiliser la colonne de pseudo MI_STYLE que dans la clause SELECT.

Exemples


; select the style attribute from all the features in the World 
; table
SELECT mi_style FROM World
	

MI_KEY

La plupart des sources de données ont comme concept une clé primaire qui identifie, de manière unique, une ligne particulière d'un jeu de données. MI SQL prend en charge les clés primaires en utilisant les attributs qui définissent la clé primaire ou via la colonne de pseudo MI_KEY. La colonne de pseudo de la clé primaire est un attribut, quel que soit le nombre d'attributs utilisés pour définir la clé primaire. Pour une clé primaire composée de plusieurs attributs dans la source de données, la valeur de la clé primaire est une chaîne composée des valeurs de la clé primaire. Le format de cette chaîne est un nombre représentant la longueur de la valeur suivante, suivie par le signe deux points, suivi par une représentation de chaîne de la valeur, avec autant de valeurs que nécessaire.

Exemples


; select the primary key from all features in the World table
SELECT MI_KEY from World

; select the POP_1990 attribute from the feature whose primary key
; equals 1
SELECT POP_1990 from World WHERE MI_KEY=1

; select the POP_1990 attribute from all the features in the World 
; table and sort the results by primary key
SELECT POP_1990 from World ORDER BY MI_KEY

; select the POP_1990 attribute from all the features in the World
; table and GROUP BY the primary key
SELECT POP_1990 from World GROUP BY MI_KEY

; select the POP_1990 attribute from the World table features with the 
; specified list of primary keys
SELECT POP_1990 from World WHERE MI_KEY in (1, 3, 4, 5, 76)

; select the POP_1990 attribute from the World table whose first primary key attribute equals 5 and second primary key equals “Hello”
SELECT POP_1990 from World WHERE MI_KEY='1:5:2:Hello'

	

Mapinfo_ID

Vous pouvez utiliser MapInfo_ID dans les requêtes MI SQL. TAB Data Provider publie MapInfo_ID sous forme de clé primaire pour une table. DescribeTableRequest renvoie des informations dans les métadonnées :


<ns4:KeyDefinition keyType="Implicit">
<ns4:AttributeRef>MapInfo_ID</ns4:AttributeRef>
</ns4:KeyDefinition>

Exemples


;select state from States where MapInfo_ID=2
SELECT state FROM States WHERE MapInfo_ID='2'