MEDIA

メディア

  1. TOP
  2. メディア
  3. プログラミング
  4. 【完全】MySQLでテーブル一覧を確認する方法まとめ集

【完全】MySQLでテーブル一覧を確認する方法まとめ集

MySQLで「テーブルが見えない」「正しいDBを見ているか不安」になったことはありませんか?

MySQLを使って開発や運用をしていると、次のような場面に必ず直面します。

  • 今このデータベースにどんなテーブルが存在しているのかを確認したい
  • SHOW TABLES を打ったのに何も表示されない
  • 複数DB・複数環境があり、本当に想定のDBを見ているか不安
  • テーブルの行数・更新日時・エンジンまで含めて把握したい

MySQLにはテーブル一覧を確認する方法が複数あり、目的に合わない方法を選ぶと混乱や事故の原因になります。

この記事では、

  • MySQLでテーブル一覧を表示する 2つの基本手法
  • SHOW TABLES と INFORMATION_SCHEMA の 使い分け
  • 実務でよく使う 絞り込み・詳細確認
  • 表示できないときの 切り分け・トラブルシュート

までを、初心者にも分かりやすく、現場経験者が納得する深さで解説します。

MySQLでテーブル一覧を確認する前に知っておくべき基礎知識

MySQLは「どのデータベースを見ているか」で結果が変わる

MySQLでは、1つのサーバ上に複数のデータベース(スキーマ)を持てます。
そのため、同じ SHOW TABLES でも対象DBが違えば結果は全く変わるのが重要なポイントです。

  • テーブルが存在しないのではなく「見ているDBが違う
  • 権限がなくて「見えていない

この2つは、実務で非常によく起こる勘違いです。

MySQLにログインしてデータベースを選択する基本手順

データベース一覧を確認する(SHOW DATABASES)

まずは、接続ユーザーが参照できるデータベース一覧を確認します。

SHOW DATABASES;

ここに表示されるのは、現在のユーザーに権限があるDBのみです。
表示されないDBは「存在しない」のではなく「権限がない」可能性もあります。

使用するデータベースを選択する(USE)

操作対象のデータベースを明示的に選択します。

USE db_name;

現在選択されているDBは、次のSQLで確認できます。

SELECT DATABASE();
  • NULL → DB未選択
  • db_name → 現在の操作対象

DB未選択のまま SHOW TABLES を実行するとエラーになるので注意が必要です。

SHOW TABLES でテーブル一覧を表示する方法

SHOW TABLES とは?

SHOW TABLES は、現在選択中のデータベースに存在するテーブル名を一覧表示する最も手軽なコマンドです。

  • 速い
  • 軽い
  • 人が目視で確認しやすい

という特徴があり、運用・調査の初動でよく使われます。

全テーブルを表示する(SHOW TABLES)

SHOW TABLES;

結果にはテーブル名のみが表示されます。
列名が Tables_in_xxx になるのは、xxx がデータベース名のためです。

別のデータベースを指定して表示する(FROM)

DBを切り替えずに確認したい場合は FROM を使います。

SHOW TABLES FROM db_name;
  • 本番DBを USE するのが怖い
  • 誤操作を防ぎたい

といった場面では、FROM指定が安全です。

LIKE でテーブル名を絞り込む

テーブル数が多い場合は LIKE が便利です。

SHOW TABLES LIKE 'user%';

ワイルドカードの使い方:

  • %:任意の文字列
  • _:任意の1文字

DB指定と LIKE は併用可能です。

SHOW TABLES FROM db_name LIKE '%meta';

INFORMATION_SCHEMA.TABLES でテーブル一覧を取得する方法

INFORMATION_SCHEMA とは?

INFORMATION_SCHEMA は、MySQLが内部で管理しているメタデータをSQLとして参照できる仕組みです。

SHOW系コマンドと違い、

  • 出力形式が安定している
  • WHERE / ORDER BY / JOIN が使える
  • スクリプトや自動化に向いている

という実務的なメリットがあります。

公式ドキュメント:https://dev.mysql.com/doc/refman/8.0/ja/information-schema.html

特定スキーマのテーブル一覧を取得する基本SQL

SELECT
  TABLE_NAME
FROM
  INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_SCHEMA = 'db_name'
  AND TABLE_TYPE = 'BASE TABLE';
  • BASE TABLE → 実テーブルのみ
  • ビューも含めたい場合は条件を外す

ビューを含めて一覧表示する

SELECT
  TABLE_NAME,
  TABLE_TYPE
FROM
  INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_SCHEMA = 'db_name';

並び替え・条件追加も自由自在

SELECT
  TABLE_NAME
FROM
  INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_SCHEMA = 'db_name'
ORDER BY
  TABLE_NAME;

複数DB横断の棚卸しや監査では、この方法がほぼ必須になります。

テーブル情報を詳しく確認する方法

SHOW TABLE STATUS で概要を一覧表示

SHOW TABLE STATUS;

確認できる主な情報:

  • ストレージエンジン(InnoDB / MyISAM)
  • 行数(概算)
  • 作成日時・更新日時
  • 文字コード・照合順序

LIKEで絞り込みも可能です。

SHOW TABLE STATUS LIKE 'user%';

※ Rows は概算値なので、正確な件数は COUNT(*) を使用します。

SHOW CREATE TABLE でDDLを確認する

SHOW CREATE TABLE table_name;

確認できる内容:

  • カラム定義
  • 制約(PK / FK)
  • インデックス
  • エンジン・文字コード

設計レビューや移行時の差分確認で必須のコマンドです。

行数・作成日時・更新日時を確認する実務的な方法

INFORMATION_SCHEMA で日時情報を取得する

SELECT
  TABLE_NAME,
  CREATE_TIME,
  UPDATE_TIME
FROM
  INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_SCHEMA = 'db_name'
  AND TABLE_TYPE = 'BASE TABLE';

⚠ InnoDBでは UPDATE_TIME が正確でない場合があります。
確実な更新管理が必要な場合は、アプリ側で更新日時カラムを持つ設計が推奨されます。

SHOW TABLES が表示できない・エラーになる原因と対処

原因① データベース未選択

ERROR 1046 (3D000): No database selected

対処:

USE db_name;

または

SHOW TABLES FROM db_name;

原因② 権限不足

現在の権限を確認します。

SHOW GRANTS;

必要に応じて、管理者に GRANT を依頼します。

公式参考:https://dev.mysql.com/doc/refman/8.0/ja/grant.html

原因③ 接続先の取り違え

  • ホスト名
  • ポート番号
  • ソケット
  • ユーザー

本番・開発・検証で環境を間違えるのは非常に多い事故です。
「テーブルがない」と感じたら、まず接続先を疑いましょう。

まとめ:MySQLのテーブル一覧取得は「目的別の使い分け」が最短ルート

  • 手早く確認したい → SHOW TABLES
  • 条件指定・自動化・横断調査 → INFORMATION_SCHEMA
  • 概要を見たい → SHOW TABLE STATUS
  • 定義を正確に確認したい → SHOW CREATE TABLE

表示されない場合は、

  1. 現在のDB

  2. 権限

  3. 接続先

この順で確認すれば、ほぼ確実に切り分けできます。

技術を深く理解し、現場で活かしたい方へ

この記事をここまで読み進めたあなたは、
単なるコマンド暗記ではなく、「なぜそうなるのか」「どう使い分けるか」に関心を持っているはずです。

私たちは、MySQLをはじめとするデータベース技術を実務で使いこなし、設計・運用・改善まで考えられるエンジニアが活躍できるチームを目指しています。

  • 技術を体系的に理解したい
  • 運用・改善まで含めて価値を出したい
  • 同じ志向を持つ仲間と成長したい

もし少しでも共感したなら、
一度、私たちの採用情報をのぞいてみてください。
あなたの知識と好奇心が、次の現場で活きるかもしれません。

学んだSQLを、実務で使えるスキルにしたい方へ

本記事ではSQLの基本的な考え方や使い方を解説しましたが、
「実務で使えるレベルまで身につけたい」と感じた方も多いのではないでしょうか。

SQLは、文法を理解するだけでなく、

  • どんなデータ構造で使われるのか
  • どんなクエリが現場で求められるのか

を意識して学ぶことで、実践力が大きく変わります。

そうした「実務を見据えたSQL学習」を進めたい方には、
完全無料で学べるプログラミングスクール ZeroCode という選択肢もあります。

  • SQLを含むWeb・データベース系スキルを体系的に学べる
  • 未経験者でも実務を意識したカリキュラム
  • 受講料・教材費がかからない完全無料の学習環境
  • 完全オンラインでスキマ学習


ZeroCodeについて詳しく見る

※学習内容や進め方を確認するだけでもOKです

Join us! 未経験からエンジニアに挑戦できる環境で自分の可能性を信じてみよう 採用ページを見る→

記事監修

ドライブライン編集部

[ この記事をシェアする ]

記事一覧へ戻る