5
INTERROGATION DES CARTES 441 Sélection d’enti- tés à l’aide d’une expression SQL Le langage SQL (Structured Query Language) est un langage puissant qui permet de définir un ou plusieurs critères composés d’attributs, d’opérateurs 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 l’année précédente. Voici l’expression SQL que vous devez utiliser pour les sélectionner : Ventes > 50000 AND Type_activité = "Restaurant". Les requêtes SQL permettent de rechercher des entités ou des enregistrements dans tout format de données géré par ArcMap. Toutefois, le format des expressions varie selon le format des données appelées. Les pages suivantes contiennent des directives de construction des expressions SQL pour différents formats de données. 1. Cliquez sur Sélection, puis sur Sélectionner par attributs. 2. Cliquez sur la flèche de déroulement de Couche et, dans la liste, sur la couche contenant les entités que vous voulez sélectionner. 3. Cliquez sur la flèche de déroulement de Méthode puis, dans la liste, sur la méthode de sélection voulue. 4. Double-cliquez sur le champ dont vous voulez insérer le nom dans la zone d’expression. 5. Cliquez sur un opérateur pour l’ajouter à l’expression. 6. Cliquez sur le bouton Liste complète pour afficher les valeurs du champ sélectionné. Pour ajouter une valeur à l’expression, double-cliquez sur cette valeur. 7. Pour voir si la syntaxe est correcte et si les critères saisis entraînent bien la sélection d’entités, cliquez sur le bouton Vérifier. 8. Cliquez sur Appliquer. La barre d’état située au bas de la fenêtre ArcMap indique le nombre d’entités sélectionnées. 9. Une fois la sélection terminée, cliquez sur Fermer. Astuce Essayer l’Assistant de requêtes Si vous n’avez jamais sélectionné d’entités par leurs attributs, cliquez sur le bouton Assistant de requêtes pour créer l’expression de sélection. 1 8 2 3 4 5 6 7 Besoin d’aide pour formuler une expression ? Essayez l’Assistant de requêtes. 9

Chapitre 7 Requêtes

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.