SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
SHOW COLUMNS
は、特定のテーブル内のカラムに関する情報を表示します。これはビューに対しても機能します。LIKE
句 (存在する場合) は、どのカラム名と照合するかを示します。セクション21.32「SHOW ステートメントの拡張」で説明されているように、WHERE
句を指定すると、より一般的な条件を使用して行を選択できます。
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 | | | |
| Country | char(3) | NO | UNI | | |
| District | char(20) | YES | MUL | | |
| Population | int(11) | NO | | 0 | |
+------------+----------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
データ型が、CREATE TABLE
ステートメントに基づいて予測されるものと異なる場合は、テーブルの作成または変更時に MySQL によってデータ型が変更される場合があります。この状態が発生する条件は、セクション13.1.17.3「暗黙のカラム指定の変更」で説明されています。
FULL
キーワードを指定すると、カラムの照合順序とコメント、およびユーザーが各カラムに対して持っている権限が出力に含まれます。
構文の代わりに tbl_name
FROM db_name
db_name.tbl_name
を使用できます。つまり、次の 2 つのステートメントは同等です。
mysql> SHOW COLUMNS FROM mytable FROM mydb;
mysql> SHOW COLUMNS FROM mydb.mytable;
SHOW COLUMNS
は、テーブルカラムごとに次の値を表示します。
Field
は、カラム名を示します。
Type
は、カラムデータ型を示します。
Collation
は、バイナリ以外の文字列カラムの場合は照合順序、その他のカラムの場合は NULL
を示します。この値は、FULL
キーワードを使用した場合にのみ表示されます。
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
属性を持つ TIMESTAMP
または DATETIME
カラムに対する on update CURRENT_TIMESTAMP
です。
Privileges
は、ユーザーがこのカラムに対して持っている権限を示します。この値は、FULL
キーワードを使用した場合にのみ表示されます。
Comment
は、このカラムに含まれている任意のコメントを示します。この値は、FULL
キーワードを使用した場合にのみ表示されます。
SHOW FIELDS
は SHOW COLUMNS
のシノニムです。また、mysqlshow db_name
tbl_name
コマンドを使用してテーブルのカラムを一覧表示することもできます。
DESCRIBE
ステートメントは、SHOW COLUMNS
と同様の情報を提供します。セクション13.8.1「DESCRIBE 構文」を参照してください。
また、SHOW CREATE TABLE
、SHOW TABLE STATUS
、および SHOW INDEX
ステートメントでは、テーブルに関する情報も提供されます。セクション13.7.5「SHOW 構文」を参照してください。