MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

11.4.1 空間データ型

MySQL には、OpenGIS クラスに対応する空間データ型があります。 これらのタイプの基礎は、セクション11.4.2「OpenGIS ジオメトリモデル」 で説明されています。

空間データ型の中には、単一のジオメトリ値を保持するものがあります:

GEOMETRY にはどの型のジオメトリ値でも格納できます。 その他の単一値型 (POINTLINESTRING、および POLYGON) では、特定のジオメトリ型に値が制限されます。

他の空間データ型には、次の値のコレクションが保持されます:

GEOMETRYCOLLECTION には、任意の型のオブジェクトのコレクションを格納できます。 他のコレクション型 (MULTIPOINTMULTILINESTRING および MULTIPOLYGON) では、コレクションメンバーは特定のジオメトリタイプを持つメンバーに制限されます。

例: 任意のジオメトリタイプの値を格納できる g という名前のカラムを持つ geom という名前のテーブルを作成するには、次のステートメントを使用します:

CREATE TABLE geom (g GEOMETRY);

空間データ型のカラムには、カラムに格納されている値の空間参照システム (SRS) を明示的に示す SRID 属性を指定できます。 例:

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

SPATIAL インデックスは、NOT NULL で特定の SRID を持つ空間カラムに作成できるため、そのカラムをインデックス付けする場合は、NOT NULL および SRID 属性を使用して宣言します:

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

InnoDB テーブルでは、デカルトおよび地理的 SRS の SRID 値が許可されます。 MyISAM テーブルでは、デカルト SRS の SRID 値が許可されます。

SRID 属性を使用すると、空間カラム SRID が制限され、次のような影響があります:

SRID 属性のない空間カラムは、SRID に制限されず、SRID の値を受け入れます。 ただし、オプティマイザは、カラム定義が SRID 属性を含むように変更されるまで、SPATIAL インデックスを使用できません。これには、すべての値が同じ SRID を持つように、最初にカラムの内容を変更する必要がある場合があります。

MySQL で空間データ型を使用する方法を示すその他の例は、セクション11.4.6「空間カラムの作成」 を参照してください。 空間参照システムの詳細は、セクション11.4.5「空間参照システムのサポート」 を参照してください。