Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Spatial Data Types

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索引可以在空间列上创建,如果它们不是NULL并且具有特定的SRID,因此,如果您计划索引该列,请使用NOT NULLSRID属性声明:

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

InnoDB表允许Cartesian和地理SRS的SRID值。MyISAM表允许Cartesian SRS的SRID值。

SRID属性使空间列成为SRID-restricted,这有以下含义:

没有SRID属性的空间列不是SRID-restricted的,并接受任何SRID的值。然而,优化器不能使用SPATIAL索引,直到该列定义被修改以包括SRID属性,这可能需要首先修改列内容,以便所有值具有相同的SRID。

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