Vous êtes sur la page 1sur 5

Slection dentits laide dune

expression SQL
Le langage SQL (Structured
Query Language) est un langage
puissant qui permet de dfinir un
ou plusieurs critres composs
dattributs, doprateurs et de
calculs. Imaginez par exemple
que vous ayez une carte de
clients et que vous vouliez en
extraire ceux qui ont pour activit
la restauration et qui ont
contract avec vous pour plus
de 50 000 dollars dans lanne
prcdente. Voici lexpression
SQL que vous devez utiliser pour
les slectionner :
Ventes > 50000 AND
Type_activit =
"Restaurant".

Les requtes SQL permettent de


rechercher des entits ou des
enregistrements dans tout format
de donnes gr par ArcMap.
Toutefois, le format des
expressions varie selon le format
des donnes appeles. Les
pages suivantes contiennent des
directives de construction des
expressions SQL pour diffrents
formats de donnes.
Astuce
Essayer lAssistant de
requtes
Si vous navez jamais slectionn
dentits par leurs attributs, cliquez
sur le bouton Assistant de requtes
pour crer lexpression de
slection.
INTERROGATION DES CARTES

1. Cliquez sur Slection, puis


sur Slectionner par attributs.
2. Cliquez sur la flche de
droulement de Couche et,
dans la liste, sur la couche
contenant les entits que
vous voulez slectionner.

3. Cliquez sur la flche de


droulement de Mthode
puis, dans la liste, sur la
mthode de slection
voulue.
4. Double-cliquez sur le champ
dont vous voulez insrer le
nom dans la zone
dexpression.
5. Cliquez sur un oprateur
pour lajouter lexpression.
6. Cliquez sur le bouton Liste
complte pour afficher les
valeurs du champ
slectionn.
Pour ajouter une valeur
lexpression, double-cliquez
sur cette valeur.

Besoin daide
pour formuler
une
expression ?
Essayez
lAssistant de
requtes.

2
3
4
5

7. Pour voir si la syntaxe est


correcte et si les critres
saisis entranent bien la
slection dentits, cliquez
sur le bouton Vrifier.

8. Cliquez sur Appliquer.


La barre dtat situe au bas
de la fentre ArcMap indique
le nombre dentits
slectionnes.
9. Une fois la slection
termine, cliquez sur Fermer.

9
441

Cration dune expression SQL


Utilisation des expressions SQL dans ArcMap
Le langage SQL est un langage informatique standard conu pour
laccs des bases de donnes et leur gestion. Dans ArcMap, il
permet de slectionner des entits laide de la fonction
Slectionner par attributs ou via la bote de dialogue Gnrateur
de requtes utilise pour obtenir un ensemble de dfinition dans
une couche.
Les expressions SQL sont utilises dans de nombreuses
fonctionnalits et extensions dArcMap pour dfinir des sousensembles de donnes sur lesquelles seront excutes des
oprations spcifiques. Linterface de cration de ces requtes est
identique dans toute lapplication.
Les expressions SQL peuvent galement tre utilises en tant que
paramtres lors de la slection dentits par le programme.
Dans ArcMap, le langage SQL sert exclusivement interroger les
bases de donnes. Vous ne pouvez pas lutiliser pour insrer,
mettre jour ou supprimer des donnes. La bote de dialogue
Slectionner par attributs permet uniquement de dfinir une
expression SELECT comportant une clause WHERE.
Les sections suivantes dcrivent la procdure de cration de
requtes SQL simples. Pour plus dinformations sur la cration
dexpressions complexes, reportez-vous la rfrence SQL dans
laide ArcGIS.

Versions SQL

les tables INFO et les tables dBASE utilisent une version SQL
limite qui ne gre pas les nombreuses fonctionnalits et
caractristiques des langages ANSI SQL et Jet SQL.
Pour ces requtes, placez le nom des champs entre guillemets
doubles dans lexpression SQL, comme dans lexemple suivant :
"AREA"

Si vous interrogez des donnes de godatabase personnelle,


placez les champs entre crochets :
[AREA]

Si votre requte porte sur les donnes dune godatabase


ArcSDE ou sur les donnes dune classe dentits ArcIMS ou
dune sous-couche de service ArcIMS en mode image, saisissez
le nom du champ tel quel :
AREA

Il est galement possible que les oprateurs et les mots-cls


utiliss ne soient pas toujours les mmes.
Les botes de dialogue de cration des expressions SQL
fournissent la liste des noms de champs et des valeurs
accompagns des dlimiteurs appropris et permettent de
slectionner automatiquement les mots-cls ou les oprateurs
pertinents.
REMARQUE : la syntaxe indique dans tous les exemples de
cette section est issue du langage Jet SQL pour les donnes de
godatabase personnelle (donnes Microsoft Access).

Lexpression SQL que vous devez crer varie selon le format des
donnes sur lesquelles porte la requte. Le langage SQL est un
langage standard, mais les logiciels de bases de donnes
nutilisent pas tous des versions identiques.
Les godatabases ArcSDE utilisent des requtes ANSI SQL
tandis que les godatabases personnelles utilisent des requtes
Jet SQL. Les requtes sur les couvertures, les fichiers de formes,
442

UTILISATION DARCMAP

Expression SQL simple


Voici un exemple dexpression SQL simple :
SELECT * FROM states WHERE [STATE_NAME] =
"Alabama"

possible dutiliser les fonctions UCASE et LCASE pour


diffrencier la casse.
Pour effectuer une recherche laide dune chane partielle,
utilisez loprateur LIKE (au lieu de loprateur =) et ajoutez des
caractres gnriques.

Les expressions simples ont une syntaxe proche de la langue


parle (en anglais) et peuvent donc tre aisment
comprhensibles. Dans cet exemple, lexpression permet de
slectionner les entits contenant Alabama, dans un champ
STATE_NAME, dans la couche states.

Lexpression suivante, par exemple, permet de slectionner


Mississippi et Missouri dans les noms dtats amricains :

Dans ArcMap, le langage SQL est uniquement utilis pour la


cration de requtes ; il vous suffit donc dindiquer la partie de
lexpression place aprs le mot-cl WHERE.

Lexpression suivante permet par exemple de slectionner


Catherine Smith et Katherine Smith :

Recherche de chanes

? correspond un seul caractre.

Les chanes de requte doivent toujours tre places entre


guillemets simples.

Les caractres gnriques utiliss varient en fonction de la base


de donnes. La liste indique ici sapplique uniquement aux
donnes de godatabase personnelle. Pour connatre les autres
caractres gnriques, reportez-vous la rfrence SQL dans
laide ArcGIS.

Par exemple :
[STATE_NAME] = "California"

Ces chanes respectent la casse, sauf pour les requtes effectues


sur les tables et les classes dentits de godatabases
personnelles. Pour effectuer une recherche sans tenir compte de
ce paramtre, vous pouvez utiliser une fonction SQL permettant
dappliquer la mme casse toutes les valeurs. Pour les sources
de donnes fichier, tels que les fichiers de formes ou les
couvertures, utilisez la fonction UPPER ou LOWER.
La requte suivante, par exemple, permet de slectionner les
clients dont le nom est enregistr sous Jones ou JONES :

[STATE_NAME] LIKE "Miss*"

* correspond un groupe quelconque de caractres.

[OWNER_NAME] LIKE "?atherine smith"

Ces caractres gnriques sont accessibles par le biais de


boutons ; il vous suffit de cliquer sur le bouton voulu pour
insrer le caractre gnrique la position du curseur dans
lexpression. Seuls les caractres gnriques compatibles avec la
source de donnes de la couche ou de la table sur laquelle vous
effectuez une requte sont affichs.
Si vous utilisez un caractre gnrique dans une chane avec
loprateur =, ce caractre est trait comme faisant partie de la
chane et perd sa valeur de caractre gnrique.

UPPER("LAST_NAME") = "JONES"

Des fonctions similaires sont associes aux autres sources de


donnes. Pour les godatabases personnelles, par exemple, il est

INTERROGATION DES CARTES

443

Vous pouvez utiliser les oprateurs suprieur (>), infrieur (<),


suprieur ou gal (>=) et infrieur ou gal (<=) pour
slectionner les valeurs de chane en fonction de lordre de tri.
Voici par exemple une requte qui permet de slectionner toutes
les cits dune couverture dont le nom commence par les lettres
MZ :
"CITY_NAME" >= "M"

Les requtes effectues avec plusieurs caractres gnriques et


un ordre de tri ne sont pas spcialement appropries aux jeux de
donnes ArcSDE trs volumineux.
Loprateur diffrent de (<>) peut galement tre utilis pour les
requtes dans les chanes.

Le mot-cl NULL
Vous pouvez utiliser le mot-cl NULL afin de slectionner les
entits et les enregistrements comportant des valeurs nulles pour
le champ spcifi.
Par exemple, pour rechercher les villes dont la population en 1996
na pas t spcifie, vous pouvez utiliser la requte :
[POPULATION96] IS NULL

ou
[POPULATION] IS NOT NULL

Le mot-cl NULL est toujours prcd de IS ou IS NOT.

Recherche de chiffres
Vous pouvez effectuer des requtes sur des chiffres laide des
oprateurs gal (=), diffrent de (<>), suprieur (>), infrieur
(<), suprieur ou gal (>=) et infrieur ou gal (<=).
Par exemple :
[POPULATION96] >= 5000

Les valeurs numriques apparaissent toujours avec un point


comme sparateur dcimal, quels que soient vos paramtres
rgionaux. La virgule ne peut pas tre utilise comme sparateur
dcimal ni sparateur des milliers dans une requte.

Calculs
Vous pouvez inclure des calculs dans les requtes laide des
oprateurs mathmatiques suivants : + - * /
Les calculs peuvent tre effectus entre des champs et des
nombres.
Par exemple :
"AREA" >= "PERIMETER" * 100

Les calculs peuvent galement tre effectus entre diffrents


champs.
Ainsi, pour rechercher les dpartements ayant une densit de
population infrieure ou gale 25 habitants par kilomtre carr,
vous pouvez utiliser la requte suivante :
[POP1990] / [AREA] <\<>= 25

Les calculs effectus entre diffrents champs dune couverture


ou dun fichier de formes (ou dune table INFO ou dBASE) ne
sont pas pris en charge. Vous pouvez inclure des calculs entre un
champ et un nombre.

444

UTILISATION DARCMAP

Parenthses de priorit

Par exemple :

Les requtes sont gnralement values de gauche droite, mais


les expressions figurant entre parenthses sont values en
premier. Vous pouvez soit cliquer pour ajouter des parenthses
la requte et saisir lexpression que vous voulez y faire figurer,
soit mettre en surbrillance lexpression existante et cliquer sur le
bouton Parenthses pour ajouter des parenthses.

NOT "STATE_NAME" = "Colorado"

Par exemple :

Les expressions comportant loprateur NOT peuvent galement


combiner les oprateurs AND et OR.
La requte suivante, par exemple, permet de slectionner tous les
tats de Nouvelle-Angleterre lexception du Maine :
[SUB_REGION] = "New England" AND NOT [STATE_NAME]
= "Maine"

[HOUSEHOLDS] > [MALES] * [POP90_SQMI] + [AREA]

sera value diffremment de :


[HOUSEHOLDS] > [MALES] * ([POP90_SQMI] + [AREA])

Combinaison dexpressions
Les requtes complexes peuvent tre cres en combinant des
expressions laide des oprateurs AND et OR.

Requtes sur des dates


Requtes sur des champs de date laide de la bote de
dialogue Gnrateur de requtes ou Slectionner par
attributs
Dans ArcGIS 9, des modifications ont t apportes aux fonctions
de requte sur des champs contenant des dates.

Par exemple, pour slectionner tous les btiments dhabitation


occupant une surface suprieure 1 500 pieds carrs avec un
garage pouvant contenir trois voitures ou plus, utilisez la requte
suivante :

Pour ces champs, le format appropri pour la source de donnes


est automatiquement affich dans la liste de valeurs uniques ou
gnr par lAssistant de requtes.

[AREA] > 1500 AND [GARAGE] > 3

La plupart du temps, il vous suffit de cliquer sur le champ, sur


loprateur, puis sur la valeur pour gnrer la syntaxe correcte.

Lorsque vous utilisez loprateur OR, au moins une des deux


expressions spares par cet oprateur doit tre vraie pour que
lenregistrement puisse tre slectionn.
Par exemple :
[RAINFALL] <\<> 20 OR [SLOPE] > 35

Utilisez loprateur NOT au dbut dune expression pour


rechercher les entits ou les enregistrements qui ne
correspondent pas lexpression spcifie.

INTERROGATION DES CARTES

445