Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  チュートリアル  /  データベースとテーブルに関する情報の取得

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 はデータベースの名前です。詳細については、セクション13.7.5.38「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 になります。

DESCDESCRIBE の省略形式です。詳細については、セクション13.8.1「DESCRIBE 構文」を参照してください。

既存のテーブルを作成するために必要な CREATE TABLE ステートメントを、SHOW CREATE TABLE ステートメントを使用して取得できます。セクション13.7.5.12「SHOW CREATE TABLE 構文」を参照してください。

テーブルにインデックスが設定されている場合は、SHOW INDEX FROM tbl_name でその情報を表示できます。このステートメントの詳細については、セクション13.7.5.23「SHOW INDEX 構文」を参照してください。


User Comments
  Posted by David Macfarlane on August 12, 2011
For getting information about tables in your database, the command line program mysqlshow is very helpful.

I regularly use "mysqlshow --count database_name" to quickly inventory a database; the command returns a line for every table in the named database with the number of columns and the number of rows in each table. There's no way to get all that in one command in MySQL client. Handy, eh?
Sign Up Login You must be logged in to post a comment.