受講料が最大70%OFF 受講料が最大70%OFF

データベースにテーブルが増えてくると、どんなテーブルが存在するのか全ての名前を覚えておくことは困難です。

もちろんデータベースには、テーブルの一覧情報を取得して確認するためのSQLコマンドが存在します。

本記事では、MySQLでテーブルの一覧情報を確認するためのSQLコマンドの使い方についてご紹介していきます。

ポテパンダの一言メモ

今回はMySQLを利用したSQLコマンドをご紹介していきます。
データベース毎に利用可能なコマンドは異なりますので、ご利用のデータベースに合わせて適宜読み替えてください。

使用中のデータベースに存在するテーブル一覧を表示するSQL


まずは現在使用中のデータベースに存在するテーブル一覧を取得するSQLについてご紹介していきたいと思います。

テーブル一覧を取得するには「SHOW」コマンドを利用します。

基本構文

最初に最もシンプルなテーブル一覧の表示をSHOWコマンドで実施してみましょう。

SHOW TABLES;

今回筆者の環境では「test_db」というデータベースに3つのテストテーブルと1つのVIEWテーブルを作成したため、下記のような結果が表示されます。

+-------------------+
| Tables_in_test_db |
+-------------------+
| animal            |
| animal_name       |
| product           |
| user              |
+-------------------+

テーブルの種類までを表示する

次にSHOWコマンドのオプションである「FULL」を付けて実施してみましょう。

FULLを付けた場合にはテーブルの種類が「BASE TABLE」「VIEW」「SYSTEM VIEW」のいずれかで表示されます。

SHOW FULL TABLES;

実行した結果が下記の通りです。

+-------------------+------------+
| Tables_in_test_db | Table_type |
+-------------------+------------+
| animal            | BASE TABLE |
| animal_name       | VIEW       |
| product           | BASE TABLE |
| user              | BASE TABLE |
+-------------------+------------+

条件を絞って表示する

テーブルの表示条件として、データを取得するSQLと同じように「WHERE」や「LIKE」を利用することも可能です。

SHOW TABLES WHERE(LIKE) 条件式;

サンプルでは「product」テーブルを抽出するならば下記のような記述となります。

SHOW TABLES WHERE Tables_in_test_db = "product";

実行した結果が下記の通りです。

+-------------------+
| Tables_in_test_db |
+-------------------+
| product           |
+-------------------+
ポテパンダの一言メモ

Tables_in_test_dbについては、作成したデータベース名により異なります。
今回のサンプルでは、test_dbという名前のデータベースを作成して実施しています。

同様に「animal」から始まる名前のテーブルも抽出してみましょう。

SHOW TABLES LIKE 'animal%';

実行した結果が下記の通りです。

+-----------------------------+
| Tables_in_test_db (animal%) |
+-----------------------------+
| animal                      |
| animal_name                 |
+-----------------------------+

データベースを指定してテーブル一覧を取得するSQL


次にデータベースを指定してテーブル一覧を取得する方法についても合わせてご紹介しておきます。

上述した「SHOW」コマンドはデータベースを選択した状態で実行しないとエラーとなってしまいます。

一方で、こちらでご紹介するSQLは、SQL文中でデータベースを指定するため、データベースを切り替える必要がありません。

今回はMySQLにログインしたばかりのデータベース未選択状態でSQLを実行していきたいと思います。

SELECT DATABASE();

上記は、選択中のデータベースを確認するコマンドで、実行すると下記のように未選択状態が確認出来ます。

+------------+
| DATABASE() |
+------------+
| NULL       |
+------------+

基本構文

データを選択する際のSELECT文と同じ記述方法ですが、取得する場所を「information_schema.tables」と指定します。

SELECT カラム名(, カラム名, ...)
FROM information_schema.tables
(WHERE table_schema='データベース名')

今回は「test_db」というデータベースを作成していますので、実際に上述した「SHOW」コマンドと同じようにテーブル一覧を取得してみましょう。

SELECT table_name, table_type
FROM information_schema.tables
WHERE table_schema='test_db';

実行した結果が下記の通りです。

+-------------+------------+
| TABLE_NAME  | TABLE_TYPE |
+-------------+------------+
| animal      | BASE TABLE |
| animal_name | VIEW       |
| product     | BASE TABLE |
| user        | BASE TABLE |
+-------------+------------+

もちろんWHERE句で対象データベースを指定していますので、複数データベースのテーブルを同時に取得することも可能です。

SELECT table_name, table_type
FROM information_schema.tables
WHERE table_schema='test_db' or table_schema='sample_db';

サンプルのSQLでは別途作成した「sample_db」に作成されているテーブル「test_db」に存在するテーブルを合わせて取得しています。

+-------------+------------+
| TABLE_NAME  | TABLE_TYPE |
+-------------+------------+
| sample1     | BASE TABLE |
| sample2     | BASE TABLE |
| animal      | BASE TABLE |
| animal_name | VIEW       |
| product     | BASE TABLE |
| user        | BASE TABLE |
+-------------+------------+

さいごに:SQLでテーブル一覧を取得しよう


本記事では、SQLでデータベースのテーブル一覧を取得する方法についてご紹介してきました。

一般的に、information_schema.tableからテーブル一覧を取得する代替として「SHOW」コマンドを利用します。

基本は「SHOW」コマンドで事足りることが多いのですが、別データベースのテーブル一覧を取得する方法についても知識として蓄えておきましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。