Nuevo mes, nuevos objetivos. Su ayuda ayuda al proyecto a avanzar. 🖥️ Apoye sqltest →
Código SQL copiado al portapapeles

Base de datos Countries (PostGIS): tablas espaciales y ejercicios de SQL

Countries es una base PostGIS para aprender SQL espacial: países y capitales del mundo, además de capas de Nueva York con manzanas censales, barrios, calles y estaciones de metro. En SQLtest.online puedes consultarla directamente en el navegador: resolver ejercicios con corrección automática y ejecutar tus propias consultas en el playground, sin instalar nada.

  • 7 tablas espaciales
  • 246 países
  • 491 estaciones de metro
  • 11 ejercicios de SQL

Qué es Countries

PostGIS es la extensión de PostgreSQL que añade tipos geométricos y cientos de funciones espaciales: distancias, áreas, intersecciones, transformaciones de coordenadas. Esta base permite probarlas con datos conocidos.

Las tablas de Nueva York proceden del conocido taller «Introduction to PostGIS», y las tablas del mundo contienen las fronteras de los países y las capitales. Juntas cubren puntos, líneas y polígonos en dos sistemas de coordenadas.

Qué contiene la base

Las tablas se agrupan en dos bloques.

Mundo

countries con polígonos de fronteras y capitals con puntos, ambas en SRID 4326 (longitud y latitud).

Nueva York

nyc_census_blocks, nyc_neighborhoods, nyc_streets, nyc_subway_stations y nyc_homicides, en SRID 26918 (UTM zona 18N, metros).

Lo principal: las tablas del mundo guardan grados y las de Nueva York, metros. En las capas de Nueva York las distancias y áreas salen directamente en metros; en las tablas del mundo, convierte primero a geography o transforma la geometría.

Cuántos datos hay en las tablas:

TablaFilasContenido
countries246países y sus fronteras
capitals192capitales
nyc_census_blocks38 794manzanas censales con población
nyc_neighborhoods129barrios
nyc_streets19 091calles
nyc_subway_stations491estaciones de metro
nyc_homicides3982homicidios

Estructura de las tablas

Haz clic en una tabla para ver sus columnas, una fila de ejemplo y sus claves.

Lista de tablas

countries - lista de países con geometría.
  • ididentificador único de registro (PK)
  • namenombre del país
  • bordergeometría del país (MultiPolygon, SRID 4326)
id name border
1 Francia MultiPolygon(...) [SRID=4326]
  • CLAVE PRIMARIA, btree (id)
capitals - lista de capitales con ubicación.
  • ididentificador único de registro (PK)
  • namenombre de la capital
  • country_idreferencia al país (FK)
  • locationubicación de la capital (Point, SRID 4326)
id name country_id location
1 París 1 Point(...) [SRID=4326]
  • CLAVE PRIMARIA, btree (id)
  • CLAVE FORÁNEA (country_id) REFERENCIAS countries(id)
nyc_census_blocks - bloques de censo de la ciudad de Nueva York con datos demográficos.
  • gididentificador único de registro (PK)
  • blkidID del bloque de censo
  • popn_totalpoblación total
  • popn_whitepoblación blanca
  • popn_blackpoblación negra
  • popn_nativpoblación nativa
  • popn_asianpoblación asiática
  • popn_otherotra población
  • boronamenombre del barrio
  • geomgeometría del bloque de censo (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]
  • CLAVE PRIMARIA, btree (gid)
nyc_homicides - incidentes de homicidio en la ciudad de Nueva York.
  • gididentificador único de registro (PK)
  • incident_dfecha del incidente
  • boronamenombre del barrio
  • num_victimnúmero de víctimas
  • primary_momotivo principal
  • idID del incidente
  • weaponarma utilizada
  • light_darkcondición de luz o oscuridad
  • yearaño del incidente
  • geomubicación del incidente (Point, SRID 4326)
gid incident_d boroname num_victim primary_mo id weapon light_dark year geom
1 2003-01-01 Manhattan 1 Desconocido 1 Arma de fuego D 2003 Point(...) [SRID=4326]
  • CLAVE PRIMARIA, btree (gid)
nyc_neighborhoods - barrios de la ciudad de Nueva York.
  • gididentificador único de registro (PK)
  • boronamenombre del barrio
  • namenombre del barrio
  • geomgeometría del barrio (MultiPolygon, SRID 4326)
gid boroname name geom
1 Manhattan Distrito Financiero MultiPolygon(...) [SRID=4326]
  • CLAVE PRIMARIA, btree (gid)
nyc_streets - calles de la ciudad de Nueva York.
  • gididentificador único de registro (PK)
  • idID de la calle
  • namenombre de la calle
  • onewayindicador de sentido único
  • typetipo de calle
  • geomgeometría de la calle (LineString, SRID 4326)
gid id name oneway type geom
1 1 Broadway NO avenida LineString(...) [SRID=4326]
  • CLAVE PRIMARIA, btree (gid)
nyc_subway_stations - estaciones de metro de la ciudad de Nueva York.
  • gididentificador único de registro (PK)
  • objectidID del objeto
  • idID de la estación
  • namenombre de la estación
  • alt_namenombre alternativo
  • cross_stcalle cruzada
  • long_namenombre largo
  • labeletiqueta
  • boroughbarrio
  • nghbhdvecindario
  • routesrutas
  • transferstransferencias
  • colorcolor
  • expressindicador de expreso
  • closedindicador de cerrado
  • geomubicación de la estación (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 Rojo Sí No Point(...) [SRID=4326]
  • CLAVE PRIMARIA, btree (gid)

Consultas de ejemplo

Estas consultas muestran cómo se relacionan los datos. Copia cualquiera y ejecútala en el playground.

Una capital dentro de su país: coordenadas del punto con ST_X / ST_Y y comprobación espacial con 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

Estaciones de metro y su SRID: las capas de Nueva York usan la proyección 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

Ejercicios de SQL por tema

Esta base tiene 11 ejercicios de PostGIS: distancias, áreas, longitudes, conversiones a texto y JSON y uniones espaciales. Las soluciones se comprueban automáticamente en un PostgreSQL real con PostGIS. El número de la derecha es la cantidad de ejercicios del tema; los puntos de color muestran el rango de dificultad.

Por dónde empezar

Los primeros ejercicios de la base Countries:

  1. Extraer Geometría como Texto
  2. Extraer Geometría como JSON
  3. Distancia entre ciudades
  4. Área del País
  5. Estaciones de Subte de Manhattan
  6. Área del Barrio
  7. Área del Barrio
  8. Promedio de Área por Barrio
  9. Longitud de las Calles de Nueva York
  10. Estaciones de Little Italy

Todos los ejercicios de Countries →

Preguntas frecuentes

¿Hay que instalar PostGIS para usar esta base?

No. Los ejercicios y el playground de SQLtest.online ejecutan las consultas en nuestros servidores, así que basta con un navegador. En el playground, elige PostgreSQL 17 + PostGIS WorkShop.

¿Qué es un SRID?

Un identificador de sistema de referencia espacial: indica en qué sistema están las coordenadas. 4326 es longitud y latitud en grados (WGS 84); 26918 es UTM zona 18N en metros, el que se usa para Nueva York.

¿De dónde vienen las tablas de Nueva York?

Del conjunto de datos del taller «Introduction to PostGIS» publicado en postgis.net, un punto de partida habitual para aprender PostGIS.