文档首页
MySQL 9.0 参考手册
相关文档 下载此手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  空间数据类型

13.4.1 空间数据类型

MySQL 具有与 OpenGIS 类相对应空间数据类型。这些类型的基础在第 13.4.2 节,“OpenGIS 几何模型” 中进行了描述。

某些空间数据类型保存单个几何值

  • GEOMETRY

  • POINT

  • LINESTRING

  • POLYGON

GEOMETRY 可以存储任何类型的几何值。其他单值类型(POINTLINESTRINGPOLYGON)将其值限制为特定几何类型。

其他空间数据类型保存值的集合

  • MULTIPOINT

  • MULTILINESTRING

  • MULTIPOLYGON

  • GEOMETRYCOLLECTION

GEOMETRYCOLLECTION 可以存储任何类型的对象的集合。其他集合类型(MULTIPOINTMULTILINESTRINGMULTIPOLYGON)将集合成员限制为具有特定几何类型的那些成员。

例如:要创建一个名为 geom 的表,该表包含一个名为 g 的列,该列可以存储任何类型的几何值,请使用以下语句

CREATE TABLE geom (g GEOMETRY);

具有空间数据类型的列可以具有 SRID 属性,以明确指示存储在列中的值的地理空间参考系统 (SRS)。例如

CREATE TABLE geom (
    p POINT SRID 0,
    g GEOMETRY NOT NULL SRID 4326
);

SPATIAL 索引可以在空间列上创建,前提是它们为 NOT NULL 且具有特定的 SRID,因此,如果您计划为该列建立索引,请使用 NOT NULLSRID 属性声明该列

CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326);

InnoDB 表允许笛卡尔和地理 SRS 的 SRID 值。 MyISAM 表允许笛卡尔 SRS 的 SRID 值。

SRID 属性使空间列成为 SRID 受限的,这具有以下含义

没有 SRID 属性的空间列不受 SRID 限制,并接受具有任何 SRID 的值。但是,优化器无法使用它们上的 SPATIAL 索引,直到列定义被修改为包含 SRID 属性,这可能需要先修改列内容,以便所有值都具有相同的 SRID。

有关在 MySQL 中如何使用空间数据类型的其他示例,请参见第 13.4.6 节,“创建空间列”。有关空间参考系统的更多信息,请参见第 13.4.5 节,“空间参考系统支持”