MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで特定のカラム名を持つすべてのテーブルを検索する方法

MySQLで、特定のカラム名を持つすべてのテーブルを取得したい場合は、システムビューである INFORMATION_SCHEMA.COLUMNS に対して LIKE 演算子を使ったクエリを実行します。以下に具体例を挙げながら解説します。

実行例:カラム名「ID」を含むテーブルを検索する

次のクエリは、カラム名に「ID」が含まれるテーブルを最大10件まで抽出し、テーブル名の昇順で表示します。

mysql> SELECT COLUMN_NAME AS 'ColumnName', TABLE_NAME AS 'Tablename'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%ID%'
ORDER BY Tablename LIMIT 10;
+-------------+---------------+
| ColumnName | Tablename |
+-------------+---------------+
| id | arena |
| id | arena1 |
| ID | cars |
| ID | COLLATIONS |
| ID | copy_cars |
| COUNTRY_ID | countries |
| REGION_ID | countries |
| Customer_Id | customers |
| Customer_Id | customer_view |
| id | emp |
+-------------+---------------+
10 rows in set, 0 warnings (0.15 sec)

クエリのポイント

  • INFORMATION_SCHEMA.COLUMNS:データベース内のすべてのカラム情報を格納している標準のシステムビューです。このテーブルを参照することで、スキーマ全体を横断的に調査できます。
  • LIKE '%ID%':カラム名に「ID」を含むものを部分一致で検索します。完全一致で探したい場合は COLUMN_NAME = 'ID' に置き換えてください。
  • ORDER BY Tablename:結果をテーブル名順に並べることで、同じテーブルに属するカラムがまとまって表示され、読みやすくなります。
  • LIMIT 10:表示件数を制限しています。大量のヒットが予想される場合に便利です。不要であれば削除しても問題ありません。

この手法を活用すれば、大規模なデータベースでも「どのテーブルに目的のカラムが存在するのか」を素早く特定でき、スキーマの整理や影響範囲の調査に役立ちます。

  1. MySQLで全テーブルから特定のカラムを検索する方法|INFORMATION_SCHEMAの活用

    MySQLでカラムの存在を確認する基本アプローチMySQLにおいて、データベース内のどのテーブルに特定のカラムが存在するかを調べたい場面は少なくありません。そんなときに役立つのが、システムビューである INFORMATION_SCHEMA.COLUMNS です。このビューを参照することで、スキーマ全体を横断して目的のカラムを持つテーブルを一括で特定できます。基本的な構文は以下のとおりです。SELECT table_name, column_nameFROM INFORMATION_SCHEMA.COLUMNSWHERE table_schema = SCHEMA()AND column_nam

  2. MySQLクエリで列名にエイリアス(別名)を設定する方法

    MySQLでは、SELECT文を使って列名に「エイリアス(別名)」を設定できます。エイリアスを利用すると、出力結果の見出しをわかりやすい名前に変更でき、レポート作成やアプリケーションでのデータ表示が格段に読みやすくなります。列名にエイリアスを設定する基本構文SELECT yourColumnName1 anyAliasName1, yourColumnName2 anyAliasName2FROM yourTableName anyAliasName;このように、列名の後にスペースを空けて任意の別名を記述するだけで、その列の表示名がエイリアスに置き換わります。テーブル名にも同様にエイリアスを設