Nouveau mois, nouveaux objectifs. Votre aide fait avancer le projet. 🖥️ Soutenez sqltest →
Code SQL copié dans le presse-papiers

Base de données Countries (PostGIS) : tables spatiales et exercices SQL

Countries est une base PostGIS pour apprendre le SQL spatial : pays et capitales du monde, ainsi que des couches de New York avec îlots de recensement, quartiers, rues et stations de métro. Sur SQLtest.online, vous l'interrogez directement dans le navigateur : vous résolvez des exercices corrigés automatiquement et exécutez vos propres requêtes dans le bac à sable, sans rien installer.

  • 7 tables spatiales
  • 246 pays
  • 491 stations de métro
  • 11 exercices SQL

Qu'est-ce que Countries

PostGIS est l'extension de PostgreSQL qui ajoute des types géométriques et des centaines de fonctions spatiales : distances, surfaces, intersections, transformations de coordonnées. Cette base permet de les essayer sur des données familières.

Les tables de New York proviennent du célèbre atelier PostGIS « Introduction to PostGIS », et les tables mondiales contiennent les frontières des pays et les capitales. Ensemble, elles couvrent points, lignes et polygones dans deux systèmes de coordonnées.

Contenu de la base

Les tables se répartissent en deux groupes.

Monde

countries avec les polygones des frontières et capitals avec des points, tous deux en SRID 4326 (longitude et latitude).

New York

nyc_census_blocks, nyc_neighborhoods, nyc_streets, nyc_subway_stations et nyc_homicides, en SRID 26918 (UTM zone 18N, mètres).

L'essentiel à retenir : les tables mondiales stockent des degrés, celles de New York des mètres. Dans les couches de New York, distances et surfaces sortent directement en mètres ; pour les tables mondiales, convertissez d'abord en geography ou transformez la géométrie.

Volume de données des tables :

TableLignesContenu
countries246pays et leurs frontières
capitals192capitales
nyc_census_blocks38 794îlots de recensement avec population
nyc_neighborhoods129quartiers
nyc_streets19 091rues
nyc_subway_stations491stations de métro
nyc_homicides3 982homicides

Structure des tables

Cliquez sur une table pour voir ses colonnes, une ligne d'exemple et ses clés.

Liste des tables

countries - liste des pays avec géométrie.
  • ididentifiant unique de l'enregistrement (PK)
  • namenom du pays
  • bordergéométrie du pays (MultiPolygon, SRID 4326)
id name border
1 France MultiPolygon(...) [SRID=4326]
  • PRIMARY KEY, btree (id)
capitals - liste des capitales avec emplacement.
  • ididentifiant unique de l'enregistrement (PK)
  • namenom de la capitale
  • country_idréférence au pays (FK)
  • locationemplacement de la capitale (Point, SRID 4326)
id name country_id location
1 Paris 1 Point(...) [SRID=4326]
  • PRIMARY KEY, btree (id)
  • FOREIGN KEY (country_id) REFERENCES countries(id)
nyc_census_blocks - blocs de recensement de la ville de New York avec données démographiques.
  • gididentifiant unique de l'enregistrement (PK)
  • blkididentifiant du bloc de recensement
  • popn_totalpopulation totale
  • popn_whitepopulation blanche
  • popn_blackpopulation noire
  • popn_nativpopulation autochtone
  • popn_asianpopulation asiatique
  • popn_otherautre population
  • boronamenom de l'arrondissement (borough)
  • geomgéométrie du bloc de recensement (MultiPolygon, SRID 4326)
gid blkid popn_total popn_white popn_black popn_nativ popn_asian popn_other boroname geom
1 360050001001000 1000 500 200 50 150 100 Manhattan MultiPolygon(...) [SRID=4326]
  • PRIMARY KEY, btree (gid)
nyc_homicides - incidents d'homicides dans la ville de New York.
  • gididentifiant unique de l'enregistrement (PK)
  • incident_ddate de l'incident
  • boronamenom de l'arrondissement
  • num_victimnombre de victimes
  • primary_momobile principal
  • ididentifiant de l'incident
  • weaponarme utilisée
  • light_darkcondition de luminosité (jour/nuit)
  • yearannée de l'incident
  • geomemplacement de l'incident (Point, SRID 4326)
gid incident_d boroname num_victim primary_mo id weapon light_dark year geom
1 2003-01-01 Manhattan 1 Inconnu 1 Arme à feu D 2003 Point(...) [SRID=4326]
  • PRIMARY KEY, btree (gid)
nyc_neighborhoods - quartiers de la ville de New York.
  • gididentifiant unique de l'enregistrement (PK)
  • boronamenom de l'arrondissement
  • namenom du quartier
  • geomgéométrie du quartier (MultiPolygon, SRID 4326)
gid boroname name geom
1 Manhattan Financial District MultiPolygon(...) [SRID=4326]
  • PRIMARY KEY, btree (gid)
nyc_streets - rues de la ville de New York.
  • gididentifiant unique de l'enregistrement (PK)
  • ididentifiant de la rue
  • namenom de la rue
  • onewayindicateur de sens unique
  • typetype de rue
  • geomgéométrie de la rue (LineString, SRID 4326)
gid id name oneway type geom
1 1 Broadway NO avenue LineString(...) [SRID=4326]
  • PRIMARY KEY, btree (gid)
nyc_subway_stations - stations de métro de la ville de New York.
  • gididentifiant unique de l'enregistrement (PK)
  • objectididentifiant d'objet
  • ididentifiant de la station
  • namenom de la station
  • alt_namenom alternatif
  • cross_strue transversale
  • long_namenom long
  • labelétiquette
  • borougharrondissement
  • nghbhdquartier
  • routeslignes
  • transferscorrespondances
  • colorcouleur
  • expressindicateur express
  • closedindicateur de fermeture
  • geomemplacement de la station (Point, SRID 4326)
gid objectid id name alt_name cross_st long_name label borough nghbhd routes transfers color express closed geom
1 1 1 Times Square Times Sq 7th Ave Times Square-42nd Street Times Sq Manhattan Midtown 1,2,3,7,A,C,E,N,Q,R,S,W 42nd St Rouge Oui Non Point(...) [SRID=4326]
  • PRIMARY KEY, btree (gid)

Exemples de requêtes

Ces requêtes montrent comment les données sont reliées. Copiez-en une et exécutez-la dans le bac à sable.

Une capitale dans son pays : coordonnées du point avec ST_X / ST_Y et vérification spatiale avec ST_Contains.

SELECT c.name AS capital, co.name AS country,
       round(ST_Y(c.location)::numeric, 2) AS lat,
       round(ST_X(c.location)::numeric, 2) AS lon,
       ST_Contains(co.border, c.location) AS inside_border
FROM capitals c
JOIN countries co ON co.id = c.country_id
ORDER BY c.name
LIMIT 3;
capitalcountrylatloninside_border
Abu DhabiUnited Arab Emirates24.3054.70true
AbujaNigeria9.087.40true
AccraGhana5.60-0.19true

Les stations de métro et leur SRID : les couches de New York utilisent la projection 26918.

SELECT s.name AS station, s.borough, s.routes, ST_SRID(s.geom) AS srid
FROM nyc_subway_stations s
ORDER BY s.gid
LIMIT 3;
stationboroughroutessrid
Cortlandt StManhattanR,W26918
Rector StManhattan126918
South FerryManhattan126918

Exercices SQL par thème

Cette base compte 11 exercices PostGIS : distances, surfaces, longueurs, conversions en texte et en JSON, jointures spatiales. Les solutions sont vérifiées automatiquement sur un vrai PostgreSQL avec PostGIS. Le nombre à droite indique combien d'exercices compte le thème ; les points colorés montrent la plage de difficulté.

Par où commencer

Les premiers exercices sur la base Countries :

  1. Extraire la géométrie en texte
  2. Extraire la géométrie en JSON
  3. Distance entre villes
  4. Superficie d'un pays
  5. Stations de métro à Manhattan
  6. Superficie du quartier
  7. Superficie : plus petit et plus grand quartier
  8. Superficie moyenne des quartiers
  9. Longueur des rues de New York
  10. Stations Little Italy

Tous les exercices Countries →

Questions fréquentes

Faut-il installer PostGIS pour utiliser cette base ?

Non. Les exercices et le bac à sable de SQLtest.online exécutent les requêtes sur nos serveurs : un navigateur suffit. Dans le bac à sable, choisissez PostgreSQL 17 + PostGIS WorkShop.

Qu'est-ce qu'un SRID ?

Un identifiant de système de référence spatiale : il indique dans quel système sont exprimées les coordonnées. 4326 correspond à la longitude et la latitude en degrés (WGS 84) ; 26918 à l'UTM zone 18N en mètres, utilisé pour New York.

D'où viennent les tables de New York ?

Du jeu de données de l'atelier « Introduction to PostGIS » publié sur postgis.net, un point de départ courant pour apprendre PostGIS.