Vous êtes sur la page 1sur 32

Mapinfo et les requêtes SQL

Mapinfo et les requêtes SQL

Olivier Tournaire

Université de Marne-la-Vallée

31 janvier 2007
Master I Géo-Environnement

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
INTRODUCTION

Introduction - Généralités

SQL (Structured Query Language) est un


LDD (Language de Définition de Données)
_ Créer / modifier / supprimer tables
LMD (Language de Manipulation de Données)
_ Sélectionner / insérer / modifier / supprimer données
dans une table
LCD (Language de Contrôle de Données)
_ Définir des permissions au niveau des utilisateurs
Commande principale : SELECT (algèbre relationnelle)
_ SELECT <liste des noms de colonnes> | * FROM
<liste des noms de tables> [WHERE <condition>]
[GROUP BY] [HAVING] [ORDER BY]

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Les opérateurs sur les attributs


Opérateur de restriction
WHERE
Opérateurs logiques
AND OR NOT
Comparateurs de chaînes
IN BETWEEN LIKE
Opérateurs arithmétiques
+-*/%
Comparateurs
arithmétiques
= != > < >= <=
<> !> !<
Table exemple : Arbres
Olivier Tournaire Université de Marne-la-Vallée
Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection simple
Sélectionner tout
_ Select * From Arbres
Sélection de certaines colonnes
_ Select Espece,EtatPhytosanitaire From Arbres

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection sur critère(s)

Sélection sur un critère


_ Select * From Arbres Where AnneePlantation < 1970

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection sur critère(s)

Sélection multi-critère
_ Select * From Arbres Where EtatPhytoanitaire =
"Malade" And Zone = "Z3"

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection sur critère(s)

Sélection multi-critère (les deux requêtes donnent le


même réultat ...)
_ Select * From Arbres Where AnneePlantation > 1800
And AnneePlantation <= 1900
_ Select * From Arbres Where AnneePlantation Between
1801 And 1900

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection avec ordonancement


Ordonancement simple
_ Select * From Arbres Order By Espece ASC

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection avec ordonancement


Ordonancement multiple
_ Select * From Arbres Order By Espece ASC,
AnneePlantation ASC

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection sur chaines de caractères

Avec des caractères joker (Espèces dont la deuxième


lettre est un "h"
_ Select * From Arbres Where Espece Like "_h

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection sur chaines de caractères

Sélection dans un ensemble de valeurs


_ Select * From Arbres Where Espece In ("Micocoulier" ,
"Myosotis")

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection avec regroupement

Sélection distincte
_ Select Espece From Arbres Group By Espece

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection avec regroupement

Avec la clause GROUP BY


_ AVG COUNT MAX MIN SUM
Permet d’effectuer des statistiques sur les résultats de
requêtes

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection avec regroupement

Compter le nombre d’arbres sains et malades (avec


création d’une colonne "NbArbres")
_ Select EtatPhytosanitaire, count(*)"NbArbres" From
Arbres Group By EtatPhytosanitaire

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL ATTRIBUTAIRES

Sélection avec regroupement


Compter le nombre d’arbres sains et malades par espèce
et trier par nom d’espèce
_ Select Espece, EtatPhytosanitaire, count(*)"NbArbres"
From Arbres Group By Espece, EtatPhytosanitaire Order
By Espece Asc

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
JOINTURES

Jointure (Θ-jointure)
Une jointure est un produit cartésien de deux tables
Une équijointure est une Θ-jointure dont la qualification
est une égalité entre deux colonnes
En SQL : préciser le nom des colonnes des tables sur
lesquelles on fait la jointure avec le qualificatif WHERE
Seconde table exemple : Techniciens

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
JOINTURES

Jointure (Θ-jointure)
Sélection des espèces et des états phyto-sanitaires dans
la table Arbres et des noms de techniciens dans la table
ZoneTechnicien
_ La jointure se fait sur la colonne Zone qui est commune
aux deux tables
_ Select Arbres.Espece,
Arbres.EtatPhytosanitaire,Technicien.Technicien From
Arbres, Technicien Where Arbres.Zone = Technicien.Zone

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL SPATIALES

Les opérateurs spatiaux

Opérateurs spécifiques aux SIG


_ Requêtes sur les objets géographiques
⇒ Le résultat est à la fois attributaire et spatial (sélection
dans la(es) table(s) et dans les objets géographiques)
Contains : A "contains" B ⇔ le centroïde de B est dans A
Contains entire : A "contains entire" B ⇔ B est dans A
Within : A "within" B ⇔ le centroïde de A est dans B
Entirely within : A "entirely within" B ⇔ A est dans B
Intersects : A "intersects" B ⇔ A et B sont d’intersection
non nulle

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL SPATIALES

Les opérateurs spatiaux

Les requêtes spatiales se font grâce à l’attribut obj


Fonctions sur les objets géographiques
CartesianArea
CartesianPerimeter
ObjectLen
Centroid
...
Possibilité de combiner requêtes attributaires et spatiales

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL SPATIALES

Les opérateurs spatiaux


Sélection des bâtiments de plus de 1000 m2
_ Select * from Batiment where CartesianArea(obj, "sq m")
> 1000

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL SPATIALES

Les opérateurs spatiaux


Sélection des bâtiments de plus de 1000 m2
_ Select * from Batiment where CartesianArea(obj, "sq m")
> 1000

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL SPATIALES

Les opérateurs spatiaux


Sélection des bâtiments qui intersectent une limite
communale
_ Select * from Batiment, Communes where Batiment.obj
Intersects Commune.Obj

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL SPATIALES

Les opérateurs spatiaux


Sélection des bâtiments qui intersectent une limite
communale
_ Select * from Batiment, Communes where Batiment.obj
Intersects Commune.Obj

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL MIXTES

Requêtes SQL mixtes


Sélection des bâtiments de plus de 800 m2 situés sur la
commune de Boulogne-Billancourt
_ Select * from Batiment, Commune where Batiment.obj
intersects Commune.obj and Commune.Nom Like
"Boulogne%" And CartesianArea(Batiment.obj, "sq m") > 800

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
REQUETES SQL MIXTES

Requêtes SQL mixtes


Sélection des bâtiments de plus de 800 m2 situés sur la
commune de Boulogne-Billancourt
_ Select * from Batiment, Commune where Batiment.obj
intersects Commune.obj and Commune.Nom Like
"Boulogne%" And CartesianArea(Batiment.obj, "sq m") > 800

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
L’INTERFACE SQL DE MAPINFO

L’interface de Mapinfo
Accessible par le menu Query > SQL select ...
Permet d’automatiser l’écriture des requêtes à partir d’une
interface graphique

Olivier Tournaire Université de Marne-la-Vallée


Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
L’INTERFACE SQL DE MAPINFO

L’interface de Mapinfo
1 On commence par
sélectionner les
tables
2 On sélectionne
ensuite les colonnes
1 des tables
3 On écrit la ou les
conditions de
sélection
4 On choisit
(éventuellement) des
regroupements et
des ordonancements
Olivier Tournaire Université de Marne-la-Vallée
Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
L’INTERFACE SQL DE MAPINFO

L’interface de Mapinfo
1 On commence par
sélectionner les
tables
2 On sélectionne
ensuite les colonnes
1 des tables
3 On écrit la ou les
conditions de
sélection
4 On choisit
(éventuellement) des
regroupements et
des ordonancements
Olivier Tournaire Université de Marne-la-Vallée
Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
L’INTERFACE SQL DE MAPINFO

L’interface de Mapinfo
1 On commence par
sélectionner les
tables
2 2 On sélectionne
ensuite les colonnes
1 des tables
3 On écrit la ou les
conditions de
sélection
4 On choisit
(éventuellement) des
regroupements et
des ordonancements
Olivier Tournaire Université de Marne-la-Vallée
Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
L’INTERFACE SQL DE MAPINFO

L’interface de Mapinfo
1 On commence par
sélectionner les
tables
2 2 On sélectionne
ensuite les colonnes
1 des tables
3 On écrit la ou les
conditions de
sélection
4 On choisit
(éventuellement) des
regroupements et
des ordonancements
Olivier Tournaire Université de Marne-la-Vallée
Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
L’INTERFACE SQL DE MAPINFO

L’interface de Mapinfo
1 On commence par
sélectionner les
tables
2 2 On sélectionne
ensuite les colonnes
1 des tables
3 3 On écrit la ou les
conditions de
sélection
4 On choisit
(éventuellement) des
regroupements et
des ordonancements
Olivier Tournaire Université de Marne-la-Vallée
Mapinfo et les requêtes SQL
Mapinfo et les requêtes SQL
L’INTERFACE SQL DE MAPINFO

L’interface de Mapinfo
1 On commence par
sélectionner les
tables
2 4 2 On sélectionne
ensuite les colonnes
1 des tables
3 3 On écrit la ou les
conditions de
}4 sélection
4 On choisit
(éventuellement) des
regroupements et
des ordonancements
Olivier Tournaire Université de Marne-la-Vallée
Mapinfo et les requêtes SQL