11.4.1 Spatial Data Types
MySQL has spatial data types that correspond to OpenGIS classes. The basis for these types is described in Section 11.4.2, “The OpenGIS Geometry Model”.
Some spatial data types hold single geometry values:
GEOMETRY
POINT
LINESTRING
POLYGON
GEOMETRY
can store geometry values of any type. The other single-value types (POINT
, LINESTRING
, and POLYGON
) restrict their values to a particular geometry type.
The other spatial data types hold collections of values:
MULTIPOINT
MULTILINESTRING
MULTIPOLYGON
GEOMETRYCOLLECTION
GEOMETRYCOLLECTION
can store a collection of objects of any type. The other collection types (MULTIPOINT
, MULTILINESTRING
, and MULTIPOLYGON
) restrict collection members to those having a particular geometry type.
Example: To create a table named geom
that has a column named g
that can store values of any geometry type, use this statement:
CREATE TABLE geom (g GEOMETRY);
SPATIAL
indexes can be created on NOT NULL
spatial columns, so if you plan to index the column, declare it NOT NULL
:
CREATE TABLE geom (g GEOMETRY NOT NULL);
For other examples showing how to use spatial data types in MySQL, see Section 11.4.5, “Creating Spatial Columns”.