MySQL 8.0 リファレンスマニュアル


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

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.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 です。

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

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

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


関連キーワード:  テーブル, カラム, ステートメント, データベース, 情報, 選択, 作成, 特定, サーバー, 取得