データベースやテーブルの名前を忘れた場合や、特定のテーブルの構造 (カラムの名前など) を忘れた場合はどうしますか。MySQL では、この問題に対処するために、サポートしているデータベースとテーブルについて情報を提供するステートメントがいくつか用意されています。
前出の SHOW
DATABASES
は、サーバーで管理されているデータベースのリストを表示します。現在どのデータベースが選択されているかを調べるには、DATABASE()
関数を使用します。
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+
まだどのデータベースも選択していない場合、結果は
NULL
になります。
テーブルの名前がはっきりしない場合などに、デフォルトのデータベースにどのようなテーブルが含まれているかを調べるには、次のコマンドを使用します。
mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event |
| pet |
+---------------------+
このステートメントで生成される出力のカラム名は常に
Tables_in_
になります。ここで、db_name
db_name
はデータベースの名前です。詳細については、項8.5.5.39. 「SHOW TABLES
構文」
を参照してください。
テーブルの構造を調べるには、DESCRIBE
コマンドが役立ちます。このコマンドはテーブルの各カラムの情報を表示します。
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
Field
はカラム名、Type
はカラムのデータ型、NULL
はカラムに NULL
値を含められるかどうか、Key
はカラムにインデックスが設定されるかどうか、Default
はカラムのデフォルト値を示します。Extra
には、カラムに関する特殊な情報が表示されます。カラムが
AUTO_INCREMENT
オプションで作成された場合、値は空ではなく
auto_increment
になります。
DESC
は
DESCRIBE
の省略形式です。詳細については、項8.3.1. 「DESCRIBE
構文」
を参照してください。
既存のテーブルを作成するために必要な
CREATE TABLE
ステートメントを、SHOW
CREATE TABLE
ステートメントを使用して取得できます。項8.5.5.12. 「SHOW CREATE TABLE
構文」
を参照してください。
テーブルにインデックスが設定されている場合は、SHOW
INDEX FROM
でその情報を表示できます。このステートメントの詳細については、項8.5.5.23. 「tbl_name
SHOW INDEX
構文」を参照してください。