MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  INFORMATION_SCHEMA テーブル  /  INFORMATION_SCHEMA COLUMNS テーブル

26.8 INFORMATION_SCHEMA COLUMNS テーブル

COLUMNS テーブルは、テーブル内のカラムに関する情報を提供します。 関連する ST_GEOMETRY_COLUMNS テーブルは、空間データを格納するテーブルのカラムに関する情報を提供します。 セクション26.35「INFORMATION_SCHEMA ST_GEOMETRY_COLUMNS テーブル」を参照してください。

COLUMNS テーブルには、次のカラムがあります:

  • TABLE_CATALOG

    カラムを含むテーブルが属するカタログの名前。 この値は常に def です。

  • TABLE_SCHEMA

    カラムを含むテーブルが属するスキーマ (データベース) の名前。

  • TABLE_NAME

    カラムを含むテーブルの名前。

  • COLUMN_NAME

    カラムの名前。

  • ORDINAL_POSITION

    テーブル内のカラムの位置。 ORDINAL_POSITIONORDER BY ORDINAL_POSITION と記す場合があるため必要です。 SHOW COLUMNS とは異なり、COLUMNS テーブルの SELECT には自動順序付けはありません。

  • COLUMN_DEFAULT

    カラムのデフォルト値。 これは、カラムのデフォルトが明示的に NULL に設定されている場合、またはカラム定義に DEFAULT 句が含まれていない場合の NULL です。

  • IS_NULLABLE

    カラムの NULL 値可能性。 この値は、NULL 値をカラムに格納できる場合は YES で、格納できない場合は NO です。

  • DATA_TYPE

    カラムのデータ型。

    DATA_TYPE 値はタイプ名のみで、他の情報はありません。 COLUMN_TYPE 値には、型名と、精度や長さなどのその他の情報が含まれます。

  • CHARACTER_MAXIMUM_LENGTH

    文字列カラムの場合、最大長 (文字数)。

  • CHARACTER_OCTET_LENGTH

    文字列カラムの場合、最大長 (バイト単位)。

  • NUMERIC_PRECISION

    数値カラムの場合は、数値精度。

  • NUMERIC_SCALE

    数値カラムの場合は、数値スケール。

  • DATETIME_PRECISION

    時間カラムの場合、小数秒精度。

  • CHARACTER_SET_NAME

    文字列カラムの場合は、文字セット名。

  • COLLATION_NAME

    文字列カラムの場合、照合順序名。

  • COLUMN_TYPE

    カラムのデータ型。

    DATA_TYPE 値はタイプ名のみで、他の情報はありません。 COLUMN_TYPE 値には、型名と、精度や長さなどのその他の情報が含まれます。

  • COLUMN_KEY

    カラムがインデックス付けされているかどうか:

    • COLUMN_KEY が空の場合、カラムはインデックス付けされていないか、複数カラムの非一意インデックスのセカンダリカラムとしてのみインデックス付けされます。

    • COLUMN_KEYPRI の場合、カラムは PRIMARY KEY であるか、複数カラム PRIMARY KEY のカラムのいずれかです。

    • COLUMN_KEYUNI の場合、カラムは UNIQUE インデックスの最初のカラムです。 (UNIQUE インデックスでは複数の NULL 値が許可されますが、Null カラムをチェックすることで、カラムで NULL が許可されるかどうかを確認できます。)

    • COLUMN_KEYMUL の場合、カラムは一意でないインデックスの最初のカラムであり、特定の値の複数の出現がカラム内で許可されます。

    複数の COLUMN_KEY 値がテーブルの特定のカラムに適用される場合、COLUMN_KEY では優先度が最も高い値が PRI, UNI, MUL の順序で表示されます。

    UNIQUE インデックスは、NULL 値を含むことができず、かつテーブル内に PRIMARY KEY が存在しない場合は PRI として表示される可能性があります。 UNIQUE インデックスは、複数のカラムが複合 UNIQUE インデックスを形成している場合は MUL として表示される可能性があります。このカラムの組み合わせは一意であるにもかかわらず、各カラムには引き続き、特定の値が複数回現れることがあります。

  • EXTRA

    特定のカラムについて使用可能な追加情報。 次の場合、値は空ではありません:

    • AUTO_INCREMENT 属性を持つカラムの auto_increment

    • ON UPDATE CURRENT_TIMESTAMP 属性を持つ on update CURRENT_TIMESTAMP for TIMESTAMP または DATETIME のカラム。

    • 生成されたカラムの STORED GENERATED または VIRTUAL GENERATED

    • 式のデフォルト値を持つカラムの DEFAULT_GENERATED

  • PRIVILEGES

    カラムに対して持っている権限。

  • COLUMN_COMMENT

    カラム定義に含まれるコメント。

  • GENERATION_EXPRESSION

    生成されたカラムの場合、カラム値の計算に使用される式を表示します。 生成されないカラムの場合は空です。 生成されるカラムの詳細は、セクション13.1.20.8「CREATE TABLE および生成されるカラム」 を参照してください。

  • SRS_ID

    この値は空間カラムに適用されます。 これには、カラムに格納されている値の空間参照システムを示すカラム SRID 値が含まれます。 セクション11.4.1「空間データ型」およびセクション11.4.5「空間参照システムのサポート」を参照してください。 非空間カラムおよび SRID 属性のない空間カラムの場合、値は NULL です。

メモ

  • SHOW COLUMNS では、Type 表示に複数の異なる COLUMNS カラムの値が含まれます。

  • CHARACTER_OCTET_LENGTH は、マルチバイト文字セットを除き、CHARACTER_MAXIMUM_LENGTH と同じである必要があります。

  • CHARACTER_SET_NAME は、COLLATION_NAME から導出できます。 たとえば、SHOW FULL COLUMNS FROM t と言い、COLLATION_NAME カラムに utf8_swedish_ci の値が表示されている場合、文字セットは最初のアンダースコアの前にあります: utf8

カラム情報は、SHOW COLUMNS ステートメントからも入手できます。 セクション13.7.7.5「SHOW COLUMNS ステートメント」を参照してください。 次のステートメントはほぼ同等です。

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'tbl_name'
  [AND table_schema = 'db_name']
  [AND column_name LIKE 'wild']

SHOW COLUMNS
  FROM tbl_name
  [FROM db_name]
  [LIKE 'wild']

関連キーワード:  テーブル, SCHEMA, INFORMATION, カラム, INNODB, COLUMNS, COLUMN, KEY, TABLE, インデックス