テーブルの一覧とテーブルに関する情報を取得する
MySQL で作成済のテーブルの一覧や、テーブルが作成された時の CREATE TABLE 文の情報などテーブルに関する情報を取得する方法について解説します。SHOW TABLES 文, SHOW CREATE TABLE 文, SHOW TABLE STATUS 文などを使用します。
(Last modified: )
目次
作成済のテーブル一覧を確認する
現在作成されているテーブルの一覧を取得する方法です。SHOW TABLES 文を使います。書式は次の通りです。
SHOW [EXTENDED] [FULL] TABLES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
カレントデータベースに含まれるテーブル(およびビュー)の一覧を取得する場合は SHOW TABLES と入力します。
show tables;
FULL をつけて実行した場合はテーブルの種類として BASE TABLE 、 VIEW , SYSTEM VIEW のいずれかを返します。
show full tables;
また LIKE 句や WHER 句を使って取得するテーブルを絞り込むこともできます。( LIKE 句については「パターンマッチングで比較」、 WHERE 句については「検索条件の設定」を参照されてください)。
show tables like 'u%';
show tables where Tables_in_mydb='user';
それぞれ条件に一致したテーブルの一覧が表示されました。
作成したテーブルと同じテーブルを作成するためのCREATE TABLE文を確認する
次にテーブル名を指定して、そのテーブルを作成するのと同じテーブルを作成するための CREATE TABLE 文を表示する方法です。 SHOW CREATE TABLE 文を使います。書式は次の通りです。
SHOW CREATE TABLE tbl_name
それでは作成済みの user テーブルについて確認してみます。
show create table user\G
実際にテーブルを作成した時の CREATE TABLE 文では明示的に指定していないデフォルトのストレージエンジンやデフォルトの文字セットなどの情報も表示されました。
テーブルに格納されているデータの数や最終更新日時を取得する
テーブルに現在格納されているデータ数や最終更新時間などテーブルに関する詳細情報を取得する方法です。 SHOW TABLE STATUS 文を使います。書式は次の通りです。
SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
カレントデータベースに含まれるすべてのテーブルの情報を取得するには SHOW TABLE STATUS と入力します。 LIKE 句や WHERE 句を使って対象のテーブルを絞り込むこともできます。
SHOW TABLE STATUS
SHOW TABLE STATUS LIKE 'pattern'
SHOW TABLE STATUS WHERE expr]
それではカレントデータベースに含まれる user テーブルに関して情報を取得してみます。
show table status where name='user'\G
ただ残念ながらデータの数を表す Rows や最終更新日を表す Update_time などはストレージエンジンとして InnoDB を使用している場合は正確な値を返さないようです。
INFORMATION_SCHEMAデータベースのTABLESテーブルを参照する
INFORMATION_SCHEMA データベースは MySQL に作成されているデータベースやテーブルなどの情報を参照するために利用できます。テーブルに関しては INFORMATION_SCHEMA データベースの中の TABLES テーブルに格納されており、情報を参照するには次のように入力して下さい。
select * from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mydb' and TABLE_NAME='user'\G
指定したデータベースの中の指定したテーブルに関する情報が表示されました。
-- --
作成済のテーブルに関する情報の取得する手順について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。