データベースやテーブルの名前を忘れた場合や、特定のテーブルの構造 (カラムの名前など) を忘れた場合はどうしますか。 MySQL では、この問題に対処するために、サポートしているデータベースとテーブルについて情報を提供するステートメントがいくつか用意されています。
前出の SHOW DATABASES
は、サーバーで管理されているデータベースのリストを表示します。 現在どのデータベースが選択されているかを調べるには、DATABASE()
関数を使用します。
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+
まだどのデータベースも選択していない場合、結果は NULL
になります。
デフォルトデータベースに含まれるテーブルを確認するには (たとえば、テーブルの名前がわからない場合)、次のステートメントを使用します:
mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event |
| pet |
+---------------------+
このステートメントで生成される出力のカラム名は常に Tables_in_
になります。ここで、db_name
db_name
はデータベースの名前です。 詳細については、セクション13.7.7.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
の省略形式です。 詳細については、セクション13.8.1「DESCRIBE ステートメント」を参照してください。
既存のテーブルを作成するために必要な CREATE TABLE
ステートメントを、SHOW CREATE TABLE
ステートメントを使用して取得できます。 セクション13.7.7.10「SHOW CREATE TABLE ステートメント」を参照してください。
テーブルにインデックスが設定されている場合は、SHOW INDEX FROM
でその情報を表示できます。 このステートメントの詳細については、セクション13.7.7.22「SHOW INDEX ステートメント」を参照してください。
tbl_name