Loading...
MySQL 9.5 Reference Manual 9.5의 13.4.7 Populating Spatial Columns의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
spatial 컬럼을 생성한 후에는 그 컬럼들을 spatial 데이터로 채울 수 있습니다.
값은 내부 geometry 포맷으로 저장되어야 하지만, Well-Known Text (WKT) 또는 Well-Known Binary (WKB) 포맷에서 그 포맷으로 변환할 수 있습니다. 다음 예시는 WKT 값을 내부 geometry 포맷으로 변환하여 테이블에 geometry 값을 삽입하는 방법을 보여줍니다:
INSERT 문 안에서 직접 수행:1INSERT INTO geom VALUES (ST_GeomFromText('POINT(1 1)')); 2 3SET @g = 'POINT(1 1)'; 4INSERT INTO geom VALUES (ST_GeomFromText(@g));
INSERT 이전에 수행:1SET @g = ST_GeomFromText('POINT(1 1)'); 2INSERT INTO geom VALUES (@g);
다음 예시는 더 복잡한 geometry를 테이블에 삽입합니다:
1SET @g = 'LINESTRING(0 0,1 1,2 2)'; 2INSERT INTO geom VALUES (ST_GeomFromText(@g)); 3 4SET @g = 'POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))'; 5INSERT INTO geom VALUES (ST_GeomFromText(@g)); 6 7SET @g = 8'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))'; 9INSERT INTO geom VALUES (ST_GeomFromText(@g));
앞의 예시에서는 ST_GeomFromText()를 사용하여 geometry 값을 생성했습니다. 타입별 함수들을 사용할 수도 있습니다:
1SET @g = 'POINT(1 1)'; 2INSERT INTO geom VALUES (ST_PointFromText(@g)); 3 4SET @g = 'LINESTRING(0 0,1 1,2 2)'; 5INSERT INTO geom VALUES (ST_LineStringFromText(@g)); 6 7SET @g = 'POLYGON((0 0,10 0,10 10,0 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))'; 8INSERT INTO geom VALUES (ST_PolygonFromText(@g)); 9 10SET @g = 11'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))'; 12INSERT INTO geom VALUES (ST_GeomCollFromText(@g));
geometry 값의 WKB 표현을 사용하려는 클라이언트 애플리케이션 프로그램은 쿼리에서 서버로 올바르게 형성된 WKB를 전송할 책임이 있습니다. 이 요구 사항을 만족하는 방법은 여러 가지가 있습니다. 예를 들면:
POINT(1 1) 값을 삽입:1INSERT INTO geom VALUES 2(ST_GeomFromWKB(X'0101000000000000000000F03F000000000000F03F'));
BLOB 타입의 인수를 사용하여 placeholder에 바인딩할 수 있습니다:1INSERT INTO geom VALUES (ST_GeomFromWKB(?))
다른 프로그래밍 인터페이스에서도 비슷한 placeholder 메커니즘을 지원할 수 있습니다.
mysql_real_escape_string_quote()를 사용하여 바이너리 값을 이스케이프한 후, 그 결과를 서버로 전송되는 쿼리 문자열에 포함할 수 있습니다. mysql_real_escape_string_quote()를 참조하십시오.13.4.6 Creating Spatial Columns
13.4.8 Fetching Spatial Data