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
が空の場合、このカラムはインデックス設定されていないか、またはマルチカラム内のセカンダリカラム (一意でないインデックス) としてのみインデックス設定されているかのどちらかです。Key
がPRI
の場合、このカラムはPRIMARY KEY
であるか、またはマルチカラムPRIMARY KEY
内のいずれかのカラムです。Key
がUNI
の場合、このカラムはUNIQUE
インデックスの最初のカラムです。 (UNIQUE
インデックスは複数のNULL
値を許可しますが、そのカラムがNULL
を許可するかどうかはNull
フィールドをチェックすることによってわかります。)Key
がMUL
の場合、このカラムは、特定の値がカラム内に複数回現れることが許可されている一意でないインデックスの最初のカラムです。
テーブルの特定のカラムに複数の
Key
値が適用される場合、Key
には、もっとも優先度の高い値がPRI
、UNI
、MUL
の順序で表示されます。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
forTIMESTAMP
または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 TABLE
、SHOW TABLE STATUS
、および SHOW INDEX
ステートメントでは、テーブルに関する情報も提供されます。 セクション13.7.7「SHOW ステートメント」を参照してください。