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


13.7.7.5 SHOW COLUMNS ステートメント

SHOW [EXTENDED] [FULL] {COLUMNS | FIELDS}
    {FROM | IN} tbl_name
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]

SHOW COLUMNS は、特定のテーブル内のカラムに関する情報を表示します。 これはビューに対しても機能します。 SHOW COLUMNS は、ユーザーが何らかの権限を持っているカラムの情報のみを表示します。

mysql> SHOW COLUMNS FROM City;
+-------------+----------+------+-----+---------+----------------+
| Field       | Type     | Null | Key | Default | Extra          |
+-------------+----------+------+-----+---------+----------------+
| ID          | int(11)  | NO   | PRI | NULL    | auto_increment |
| Name        | char(35) | NO   |     |         |                |
| CountryCode | char(3)  | NO   | MUL |         |                |
| District    | char(20) | NO   |     |         |                |
| Population  | int(11)  | NO   |     | 0       |                |
+-------------+----------+------+-----+---------+----------------+

tbl_name FROM db_name 構文のかわりに、db_name.tbl_name を使用することもできます。 次の 2 つのステートメントは同等です。

SHOW COLUMNS FROM mytable FROM mydb;
SHOW COLUMNS FROM mydb.mytable;

オプションの EXTENDED キーワードを使用すると、MySQL が内部的に使用し、ユーザーがアクセスできない非表示カラムに関する情報が出力に含まれます。

オプションの FULL キーワードを指定すると、出力には、カラムの照合およびコメントに加えて、各カラムに付与されている権限が含まれます。

LIKE 句 (存在する場合) は、どのカラム名と照合するかを示します。 セクション26.55「SHOW ステートメントの拡張」で説明されているように、WHERE 句を指定すると、より一般的な条件を使用して行を選択できます。

テーブルの作成または変更時に MySQL によってデータ型が変更される場合があるため、データ型は CREATE TABLE ステートメントに基づくものとは異なる場合があります。 この状態が発生する条件は、セクション13.1.20.7「暗黙のカラム指定の変更」で説明されています。

SHOW COLUMNS は、テーブルカラムごとに次の値を表示します。

  • Field

    カラムの名前。

  • Type

    カラムのデータ型。

  • Collation

    非バイナリ文字列カラムの照合順序、またはほかのカラムの場合は NULL。 この値は、FULL キーワードを使用した場合にのみ表示されます。

  • Null

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

  • Key

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

    • Key が空の場合、このカラムはインデックス設定されていないか、またはマルチカラム内のセカンダリカラム (一意でないインデックス) としてのみインデックス設定されているかのどちらかです。

    • KeyPRI の場合、このカラムは PRIMARY KEY であるか、またはマルチカラム PRIMARY KEY 内のいずれかのカラムです。

    • KeyUNI の場合、このカラムは UNIQUE インデックスの最初のカラムです。 (UNIQUE インデックスは複数の NULL 値を許可しますが、そのカラムが NULL を許可するかどうかは Null フィールドをチェックすることによってわかります。)

    • KeyMUL の場合、このカラムは、特定の値がカラム内に複数回現れることが許可されている一意でないインデックスの最初のカラムです。

    テーブルの特定のカラムに複数の Key 値が適用される場合、Key には、もっとも優先度の高い値が PRIUNIMUL の順序で表示されます。

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

  • Default

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

  • Extra

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

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

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

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

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

  • 権限

    カラムに対して持っている権限。 この値は、FULL キーワードを使用した場合にのみ表示されます。

  • Comment

    カラム定義に含まれるコメント。 この値は、FULL キーワードを使用した場合にのみ表示されます。

テーブルのカラム情報は、INFORMATION_SCHEMA COLUMNS テーブルからも入手できます。 セクション26.8「INFORMATION_SCHEMA COLUMNS テーブル」を参照してください。 非表示カラムに関する拡張情報は、SHOW EXTENDED COLUMNS のみを使用して使用できます。COLUMNS テーブルからは取得できません。

mysqlshow db_name tbl_name コマンドを使用してテーブルのカラムをリストできます。

DESCRIBE ステートメントは、SHOW COLUMNS と同様の情報を提供します。 セクション13.8.1「DESCRIBE ステートメント」を参照してください。

また、SHOW CREATE TABLESHOW TABLE STATUS、および SHOW INDEX ステートメントでは、テーブルに関する情報も提供されます。 セクション13.7.7「SHOW ステートメント」を参照してください。


関連キーワード:  ステートメント, カラム, CREATE, TABLE, DROP, テーブル, COLUMNS, インデックス, サブクエリー, FUNCTION