Upload
bob-tchetche
View
216
Download
2
Embed Size (px)
DESCRIPTION
Manipulation dans ArcGis
Citation preview
INTERROGATION DES CARTES 441
Slection denti-ts laide duneexpression SQLLe langage SQL (StructuredQuery Language) est un langagepuissant qui permet de dfinir unou plusieurs critres compossdattributs, doprateurs et decalculs. Imaginez par exempleque vous ayez une carte declients et que vous vouliez enextraire ceux qui ont pour activitla restauration et qui ontcontract avec vous pour plusde 50 000 dollars dans lanneprcdente. Voici lexpressionSQL que vous devez utiliser pourles slectionner :Ventes > 50000 ANDType_activit ="Restaurant".
Les requtes SQL permettent derechercher des entits ou desenregistrements dans tout formatde donnes gr par ArcMap.Toutefois, le format desexpressions varie selon le formatdes donnes appeles. Lespages suivantes contiennent desdirectives de construction desexpressions SQL pour diffrentsformats de donnes.
1. Cliquez sur Slection, puissur Slectionner par attributs.
2. Cliquez sur la flche dedroulement de Couche et,dans la liste, sur la couchecontenant les entits quevous voulez slectionner.
3. Cliquez sur la flche dedroulement de Mthodepuis, dans la liste, sur lamthode de slectionvoulue.
4. Double-cliquez sur le champdont vous voulez insrer lenom dans la zonedexpression.
5. Cliquez sur un oprateurpour lajouter lexpression.
6. Cliquez sur le bouton Listecomplte pour afficher lesvaleurs du champslectionn.
Pour ajouter une valeur lexpression, double-cliquezsur cette valeur.
7. Pour voir si la syntaxe estcorrecte et si les critressaisis entranent bien laslection dentits, cliquezsur le bouton Vrifier.
8. Cliquez sur Appliquer.
La barre dtat situe au basde la fentre ArcMap indiquele nombre dentitsslectionnes.
9. Une fois la slectiontermine, cliquez sur Fermer.
Astuce
Essayer lAssistant derequtesSi vous navez jamais slectionn
dentits par leurs attributs, cliquez
sur le bouton Assistant de requtes
pour crer lexpression de
slection.
1
8
2
3
4
5
6
7
Besoin daidepour formuleruneexpression ?EssayezlAssistant derequtes.
9
442 UTILISATION DARCMAP
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 sous-
ensembles 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
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,
Cration dune expression 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).
INTERROGATION DES CARTES 443
Expression SQL simple
Voici un exemple dexpression SQL simple :
SELECT * FROM states WHERE [STATE_NAME] =
"Alabama"
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.
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.
Recherche de chanes
Les chanes de requte doivent toujours tre places entre
guillemets simples.
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 :
UPPER("LAST_NAME") = "JONES"
Des fonctions similaires sont associes aux autres sources de
donnes. Pour les godatabases personnelles, par exemple, il est
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.
Lexpression suivante, par exemple, permet de slectionner
Mississippi et Missouri dans les noms dtats amricains :
[STATE_NAME] LIKE "Miss*"
* correspond un groupe quelconque de caractres.
Lexpression suivante permet par exemple de slectionner
Catherine Smith et Katherine Smith :
[OWNER_NAME] LIKE "?atherine smith"
? correspond un seul caractre.
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.
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.
444 UTILISATION DARCMAP
Vous pouvez utiliser les oprateurs suprieur (>), infrieur (=) et infrieur ou gal (= "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
(=) et infrieur ou gal (= 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]
INTERROGATION DES CARTES 445
Parenthses de priorit
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.
Par exemple :
[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.
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 :
[AREA] > 1500 AND [GARAGE] > 3
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] 35
Utilisez loprateur NOT au dbut dune expression pour
rechercher les entits ou les enregistrements qui ne
correspondent pas lexpression spcifie.
Par exemple :
NOT "STATE_NAME" = "Colorado"
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"
Requtes sur des dates
Requtes sur des champs de date laide de la bote dedialogue Gnrateur de requtes ou Slectionner parattributs
Dans ArcGIS 9, des modifications ont t apportes aux fonctions
de requte sur des champs contenant des dates.
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.
La plupart du temps, il vous suffit de cliquer sur le champ, sur
loprateur, puis sur la valeur pour gnrer la syntaxe correcte.