MySQL のビューの一覧を取得する

ここでは MySQL でデータベース内のビュー (VIEW) の一覧を取得する方法をご説明します。

SHOW FULL TABLES でビューの一覧を取得する

MySQL の SHOW TABLES 文を使うと、データベース内のテーブルとビューの一覧を取得することができます。

SHOW FULL TABLES のように FULL 修飾子をつけると、Table_type も取得でき、WHERE Table_type = 'VIEW' のようにフィルターすることで、選択されているデータベースのビューの一覧を取得することができます。

SHOW FULL TABLES 
WHERE Table_type = 'VIEW';

[実行結果]
MySQL のビューの一覧を取得する 1


ビューの名前でフィルターしたい時は LIKE 句を使って指定できます。

例えば、SHOW FULL TABLES で、名前に max という文字が入っているテーブルとビューを取得したい時は次のようにできます。

SHOW FULL TABLES 
LIKE '%max%';

[実行結果]
MySQL のビューの一覧を取得する 2


LIKE と WHERE は併用できないため、以下のようにするとエラーにはなりませんが、期待した結果が得られませんのでご注意ください。

SHOW FULL TABLES 
WHERE Table_type = 'VIEW'
LIKE '%max%'

[実行結果]
MySQL のビューの一覧を取得する 3


SHOW CREATE VIEW でビューの定義を取得する

見つけたビューの定義を取得したい場合は SHOW CREATE VIEW 文が使えます。

ビューが存在するデータベースを選択して実行します。

例えば、view_exam_min_max_scores という名前のビューの定義を取得したい場合は、次のようにできます。

SHOW CREATE VIEW view_exam_min_max_scores;

[実行結果]
MySQL のビューの一覧を取得する 4

結果セットの Create View カラムにビューの定義があります。

SHOW CREATE TRIGGERSHOW CREATE FUNCTION で定義を取得した時と違い、改行されていないので読みにくいですが、ビューの定義が取得できます。

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_exam_min_max_scores` AS select `exam_results`.`exam_id` AS `exam_id`,min(`exam_results`.`score`) AS `min_score`,max(`exam_results`.`score`) AS `max_score` from `exam_results` group by `exam_results`.`exam_id`

INFORMATION_SCHEMA.VIEWS でビューの一覧を取得する

MySQL の INFORMATION_SCHEMA.VIEWS システムビューからも、ビューの一覧を取得することができます。

INFORMATION_SCHEMA.VIEWS は、sys データベースも含め、全データベースのビューを返します。

SELECT 	*
FROM 	INFORMATION_SCHEMA.VIEWS;

[実行結果]

MySQL のビューの一覧を取得する 5


データベースを指定するには TABLE_SCHEMA = 'データベース名' のようにフィルターします。

ビュー名でフィルターするには、TABLE_NAME カラムを使ってフィルターできます。


例えば、INFORMATION_SCHEMA.VIEWS から school_db データベースの、名前に max というキーワードが含まれるビューを取得するには次のようにできます。

SELECT 	* 
FROM    INFORMATION_SCHEMA.VIEWS
WHERE 	TABLE_SCHEMA = 'school_db'
        AND TABLE_NAME LIKE '%max%';

[実行結果]
MySQL のビューの一覧を取得する 6

school_db データベースの view_exam_min_max_scores ビューの情報が取得できています。


INFORMATION_SCHEMA.VIEWS の VIEW_DEFINITION カラムにも ビューの SELECT 文が格納されていますが、SHOW CREATE VIEW のほうが完全な構文に近いです。

'select `school_db`.`exam_results`.`exam_id` AS `exam_id`,min(`school_db`.`exam_results`.`score`) AS `min_score`,max(`school_db`.`exam_results`.`score`) AS `max_score` from `school_db`.`exam_results` group by `school_db`.`exam_results`.`exam_id`'

MySQL Workbench でビューを確認・編集する

MySQL Workbench の Schema タブの [Database] > [Views] でも、ビューを確認することができます。

MySQL のビューの一覧を取得する 7


編集するには、編集したいビューを選択して右クリックし [Alter View...] を選択します。

ビューの定義が表示され、編集できる状態になります。

MySQL のビューの一覧を取得する 8


変更すると [Apply] ボタンが押せるようになるので、[Apply] ボタンをクリックします。

MySQL のビューの一覧を取得する 9


確認画面が表示されるので、よければ [Apply] ボタンをクリックします。

MySQL のビューの一覧を取得する 10


これで、ビューが更新されました。

MySQL のビューの一覧を取得する 11


以上、MySQL でビューの一覧を取得する方法ご説明しました。

© 2025 MySQL 入門