特定の列名を含む 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_TABLE
と my_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 から列をフェッチします。 ただし、SELECT
、FROM
、および 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%';