3.4 データベースとテーブルに関する情報の取得
データベースやテーブルの名前を忘れてしまったり、テーブルの構造(例えば、カラムの名前)を忘れてしまった場合はどうすればよいでしょうか。 MySQL では、サポートしているデータベースやテーブルに関する情報を提供するいくつかのステートメントによって、この問題に対処しています。
以前、サーバーで管理されているデータベースの一覧を示す SHOW DATABASES
DATABASE()
の機能を使います。
mysql> SELECT DATABASE();+------------+| DATABASE() |+------------+| menagerie |+------------+
まだどのデータベースも選択されていない場合、結果は NULL
となります。
デフォルトのデータベースにどのようなテーブルが含まれているかを調べるには(テーブルの名前がわからない場合など)、次のような記述を行います。
mysql> SHOW TABLES;+---------------------+| Tables_in_menagerie |+---------------------+| event || pet |+---------------------+
このステートメントで生成される出力の列の名前は常に Tables_in_
で、db_name
db_name
はデータベースの名前です。 詳細は「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
ステートメントを取得することができます。 項番「SHOW CREATE TABLE ステートメント」を参照してください。
テーブルにインデックスがある場合、SHOW INDEX FROM
はインデックスに関する情報を生成します。 このステートメントの詳細については、項13.7.7.22「SHOW INDEXステートメント」を参照してください。tbl_name