特定の列名を含む MySQL のテーブルを検索する

Preet Sanghavi 2023年6月20日
  1. MySQL のスキーマ
  2. MySQL スキーマでテーブルを作成して一覧表示する
  3. MySQL で特定の列名を持つテーブルを一覧表示する
特定の列名を含む MySQL のテーブルを検索する

このチュートリアルでは、特定の列名を持つ MySQL 内のすべてのテーブルを検索する方法を示しますが、その前に、これらのテーブルが格納されているスキーマ (データベース) を理解することが不可欠です。 それでは、それから始めましょう。

MySQL のスキーマ

データベース/スキーマは、テーブル名、フィールド、データ型、およびこれらのエンティティ間の接続など、リレーショナル データベースでのデータの配置方法を制御する論理的な制限を指定します。

スキーマ/データベースの作成:

mysql> CREATE SCHEMA schema_name;

また

mysql> CREATE DATABASE schema_name;

これらの上記のクエリは、スキーマ/データベースの作成に使用され、同様の出力を示しています。 最初に、作成したばかりのスキーマを選択して、そのスキーマでクエリを使用および実行する必要があります。

スキーマを使用:

mysql> USE schema_name;

ただし、特定のスキーマまたはデータベースを削除する場合は、次のクエリを実行する必要があります。

スキーマを削除:

mysql> DROP SCHEMA schema_name;

MySQL スキーマでテーブルを作成して一覧表示する

データベース内のすべてのデータは、データベース オブジェクトと呼ばれるテーブルに格納されます。

データは、スプレッドシートに似た行と列のレイアウトを使用してテーブルに論理的に配置されます。 各列はレコード フィールドを表し、各行は個別のレコードを表します。

テーブルを作成します。

mysql> CREATE TABLE table_name(
            column_name datatype,
            column_name datatype,
            ...
        );

MySQL では、テーブルと列の名前は大文字と小文字が区別されません。 これは、MY_TABLEmy_table という名前のテーブルを作成した場合、どちらも同じであることを意味します。

テーブルが必要ない場合は、次のクエリを使用してスキーマから削除できます。

mysql> DROP TABLE table_name;

スキーマ/データベースは多くのテーブルを保持できます。 スキーマは、オペレーティング システム上に作成するフォルダーと考えることができます。

場合によっては、圧倒されて、スキーマ内に作成したテーブルを見失い、特定のスキーマ内のすべてのテーブルをリストしたくなることがあります。

その場合、次のクエリは非常に便利です。 まず、USE schema_name; を使用してスキーマを選択したことを確認します。 クエリ。

すべてのテーブルを表示:

mysql> SHOW TABLES;

スキーマ内のテーブルの種類も知りたい場合は、上記のクエリをさらに変更できます。

mysql> SHOW FULL TABLES;

さらに、現在のスキーマを切り替えることなく、別のスキーマからテーブルのリストが必要な場合。 MySQL はこの機能を提供します。 クエリで FORM または IN 句を使用できます。

mysql> SHOW TABLES FROM schema_name;

また

mysql> SHOW TABLES IN schema_name;

これらは、スキーマから基本的な詳細を取得するのに役立つ基本的なクエリです。 ただし、このクエリをさらに変更すると、必要な正確な結果が取得されるだけでなく、より洗練されたものになります。

MySQL で特定の列名を持つテーブルを一覧表示する

いくつかの特定の列を含むスキーマからテーブルを見つけたい場合は、探しています。

INFORMATION_SCHEMA.COLUMNS という名前の MySQL ビュー の助けを借りて、すべてのテーブルからすべての列または特定の列を取得して 表示 できます。

デフォルトでは、スキーマ内のすべての TABLE から列をフェッチします。 ただし、SELECTFROM、および WHERE 句を使用して、これらの列をフィルタリングできます。

mysql> SELECT DISTINCT table_name
       FROM INFORMATION_SCHEMA.COLUMNS
       WHERE COLUMN_NAME IN ('column_1', 'column_2', ...)
           AND TABLE_SCHEMA = 'schema_name';

または、上記のクエリのより単純なバージョン:

mysql> SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
       WHERE column_name = 'column_names';

フェッチしたい列の正確な名前がわからない場合は、代替オプションとして正規表現があります。

MySQL は、正規表現の多くの組み合わせの 1つからの正規表現をサポートしています。 たとえば、WHERE 句と LIKE 句を使用して、目的の列を 1 語だけで見つけることができます。

続いて、'%column_word%' 正規表現を使用します。 '%column_word%' は、指定された単語が任意の位置にある任意の値を検索します。

mysql> SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
       WHERE COLUMN_NAME LIKE '%column_word%';
著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

関連記事 - MySQL Column