[sql] 지리 데이터 타입 (geography, geometry)

SQL에서는 지리 데이터를 처리하기 위해 지리 데이터 타입을 제공합니다. 이 중에서 가장 일반적으로 사용되는 두 가지 타입은 geography와 geometry입니다. 이 두 타입은 공간 데이터를 저장하고 쿼리할 수 있는 다양한 기능을 제공합니다.

  1. Geography 타입 지리 데이터 타입 중에는 지구상의 지리적 위치를 나타내기 위한 longitude(경도)와 latitude(위도) 값을 저장하는 데이터 유형인 geography가 있습니다. 이는 일반적으로 지리적인 위치를 정확하게 나타내기 위해 사용되며, 표준 지구 좌표 시스템인 WGS84 좌표계를 따릅니다.

예를 들어, 다음과 같이 데이터를 저장하고 쿼리할 수 있습니다:

CREATE TABLE cities (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    location GEOGRAPHY(Point)
);

INSERT INTO cities (name, location)
VALUES ('Seoul', ST_GeogFromText('POINT(126.9780 37.5665)')); -- 서울의 위치

SELECT name, location
FROM cities
WHERE ST_DWithin(location, ST_GeogFromText('POINT(126.9780 37.5665)'), 10000); -- 반경 10km 이내의 도시 검색
  1. Geometry 타입 Geometry 타입은 평면 상의 공간 데이터를 나타냅니다. 즉, 지리 데이터를 두 차원 (2D)에서 다룹니다. 이는 점, 선, 다각형 등 다양한 형태의 지리 데이터를 저장하고 처리할 수 있습니다.

예를 들어, 다음과 같이 데이터를 저장하고 쿼리할 수 있습니다:

CREATE TABLE buildings (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    shape GEOMETRY(Polygon)
);

INSERT INTO buildings (name, shape)
VALUES ('Building A', ST_GeomFromText('POLYGON((-73.935242 40.730610, -73.935242 40.730610, -73.935242 40.730610, -73.935242 40.730610, -73.935242 40.730610))')); -- 다각형 형태의 건물 저장

SELECT name, shape
FROM buildings
WHERE ST_Contains(shape, ST_GeomFromText('POINT(-73.935242 40.730610)')); -- 특정 점이 포함된 건물 검색

지리 데이터 타입은 공간 분석, 지리 정보 시스템, 위치 기반 서비스 등에서 널리 사용되며, SQL에서 이러한 데이터를 처리하는 데 유용한 기능을 제공합니다.

더 자세한 정보를 원하시면 다음 참고 자료를 참고하세요: