MySQL 具有與 OpenGIS 類別對應的空間資料類型。這些類型的基礎在 第 13.4.2 節,「OpenGIS 幾何模型」中說明。
有些空間資料類型保存單一幾何值
GEOMETRY
POINT
LINESTRING
POLYGON
GEOMETRY
可以儲存任何類型的幾何值。其他單一值類型(POINT
、LINESTRING
和 POLYGON
)會將其值限制為特定幾何類型。
其他空間資料類型保存值的集合
MULTIPOINT
MULTILINESTRING
MULTIPOLYGON
GEOMETRYCOLLECTION
GEOMETRYCOLLECTION
可以儲存任何類型的物件集合。其他集合類型(MULTIPOINT
、MULTILINESTRING
和 MULTIPOLYGON
)將集合成員限制為具有特定幾何類型的成員。
範例:若要建立名為 geom
的資料表,其中有一個名為 g
的欄位,可以儲存任何幾何類型的值,請使用此陳述式
CREATE TABLE geom (g GEOMETRY);
具有空間資料類型的欄位可以具有 SRID
屬性,以明確指示儲存在欄位中的值的空間參考系統 (SRS)。例如
CREATE TABLE geom (
p POINT SRID 0,
g GEOMETRY NOT NULL SRID 4326
);
如果空間欄位為 NOT NULL
且具有特定的 SRID,則可以在空間欄位上建立 SPATIAL
索引,因此如果您打算為欄位建立索引,請使用 NOT NULL
和 SRID
屬性宣告它
CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326);
InnoDB
表格允許笛卡爾和地理 SRS 的 SRID
值。MyISAM
表格允許笛卡爾 SRS 的 SRID
值。
SRID
屬性使空間欄位受 SRID 限制,這有以下含義
欄位只能包含具有指定 SRID 的值。嘗試插入具有不同 SRID 的值會產生錯誤。
最佳化工具可以在欄位上使用
SPATIAL
索引。請參閱 第 10.3.3 節,「SPATIAL 索引最佳化」。
沒有 SRID
屬性的空間欄位不受 SRID 限制,並接受任何 SRID 的值。但是,在修改欄位定義以包含 SRID
屬性之前,最佳化工具無法在其上使用 SPATIAL
索引,這可能需要先修改欄位內容,以便所有值都具有相同的 SRID。
如需其他範例,說明如何在 MySQL 中使用空間資料類型,請參閱 第 13.4.6 節,「建立空間欄位」。如需空間參考系統的相關資訊,請參閱 第 13.4.5 節,「空間參考系統支援」。