ビューに関する情報を取得する

MySQL では作成済のビューの一覧や、ビューが作成された時の CREATE VIEW 文の情報などビューに関する情報を取得する方法として SHOW TABLES 文または SHOW CREATE VIEW 文などを使用します。ここでは MySQL でビューに関する情報を取得する方法について解説します。

(Last modified: )

作成済のビュー一覧を確認する

現在作成されているビューの一覧を取得する方法です。SHOW TABLES 文を使います。書式は次の通りです。

SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]

SHOW TABLES 文は作成済みのテーブル一覧を取得するためのものですが、ビューもテーブルと同じ扱いのため作成済みのテーブル一覧とあわえて作成済みのビューの一覧も表示されます。

では実際に試してみます。現在デフォルトデータベースにテーブルが一つも作成されていない状況で、テーブルを一つ作成してみます。そしてその後で SHOW TABLES と実行してください。

create table staff (id int, name varchar(10));

show tables;

作成済のビュー一覧を確認する(1)

先ほど作成したテーブルを元にビューを作成します。そしてその後で改めて SHOW TABLES と実行してください。

create view staffname as select name from staff;

show tables;

作成済のビュー一覧を確認する(2)

作成済みのテーブルに加えて作成済みのビューもあわせて表示されています。

このようにテーブル及びビューの一覧を取得するkとができました。ただ、この結果からはどれがテーブルでどれがビューなのかは判別することができません。

INFORMATION_SCHEMAデータベースのVIEWSテーブルを参照する

INFORMATION_SCHEMA データベースは MySQL に作成されているデータベースやテーブルなどの情報を参照するために利用できます。ビューに関しては INFORMATION_SCHEMA データベースの中の VIEWS テーブルに格納されており、情報を参照するには次のように入力して下さい。

select * from INFORMATION_SCHEMA.VIEWS where TABLE_SCHEMA='mydb'¥G

INFORMATION_SCHEMAデータベースのVIEWSテーブルを参照する(1)

WHERE 句で指定したデータベースで作成されているビューの一覧とビューに関する詳細が表示されます。なおここで表示されている VIEW_DEFINITION カラムの値は、ビューを作成した時に元になっているテーブルからどのようにビューを作成したかの部分が表示されています。

作成したビューと同じビューを作成するためのCREATE VIEW文を確認する

ビュー名を指定して、そのビューを作成するのと同じビューを作成するための CREATE VIEW 文を表示する方法です。 SHOW CREATE VIEW 文を使います。書式は次の通りです。

SHOW CREATE VIEW view_name

それでは作成済みの staffname ビューについて確認してみます。

show create view staffname\G

作成したビューと同じビューを作成するためのCREATE VIEW文を確認する(1)

実際にビューを作成した時の CREATE VIEW 文では明示的に指定していないオプションの情報も表示されました。

-- --

作成済のビューに関する情報の取得する手順について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。