ホームページ  >  記事  >  データベース  >  すべてのテーブルからの mysql クエリ データ

すべてのテーブルからの mysql クエリ データ

WBOY
WBOYオリジナル
2023-05-23 11:24:3714898ブラウズ

MySQL は、データのストレージと開発で広く使用されているリレーショナル データベース管理システム (RDBMS) です。

MySQL を使用する場合、すべてのテーブルからデータをクエリするのは非常に一般的な操作です。この記事では、読者の便宜のために 2 つの一般的な方法を紹介します。

方法 1: SHOW TABLES を使用してテーブル名をクエリし、次に SELECT * FROM を使用してテーブル データをクエリします

ステップ 1: SHOW TABLES を使用してすべてのテーブルの名前をクエリします

SHOW を使用する TABLES コマンドは、MySQL 内のすべてのテーブルの名前をクエリできます。

サンプルコード:

SHOW TABLES;

上記のコードを実行すると、データベース内のすべてのテーブル名が出力されます。

2 番目のステップ: SELECT * FROM を使用してテーブル データをクエリする

最初のステップですべてのテーブルの名前を取得した後、SELECT * FROM コマンドを使用して各テーブルのすべてのテーブルをクエリできます。データ。

サンプルコード:

SELECT * FROM 表名;

上記の「テーブル名」をクエリするテーブルの名前に置き換えてください。

上記のコードを実行すると、テーブル内のすべてのデータが出力されます。

上記の方法は単純ですが、テーブルごとに個別のクエリが必要になるため、テーブルの数が非常に多い場合、この方法は現実的ではありません。

次に、2 番目の方法を使用できます。

方法 2: 情報スキーマを使用して MySQL のすべてのテーブルのデータをクエリする

MySQL には、information_schema という特別なデータベースがあり、これには MySQL のすべてのテーブルに関する情報が含まれています。

information_schema データベースにクエリを実行すると、すべてのテーブルに関する詳細情報を取得できます。

サンプルコード:

SELECT TABLE_NAME FROM information_schema.Tables WHERE TABLE_SCHEMA='数据库名称';

「データベース名」をクエリするデータベースの名前に置き換えてください。

上記のコードを実行すると、データベース内のすべてのテーブルの名前が出力されます。

次に、すべてのテーブルのデータを走査して出力するループ ステートメントを記述します。

サンプルコード:

SET group_concat_max_len=250000;
SELECT GROUP_CONCAT(
    CONCAT('SELECT * FROM ',
        TABLE_NAME)
    SEPARATOR ' UNION ALL ')
FROM information_schema.Tables
WHERE TABLE_SCHEMA='数据库名称';

「データベース名」をクエリするデータベースの名前に置き換えてください。

上記のコードを実行すると、非常に長いSQL文が出力されます。このステートメントを SQL クライアントまたは MySQL コマンド ラインにコピーし、実行してすべてのテーブルからデータを取得します。

上記の方法は、比較的単純なデータのクエリにのみ適していることに注意してください。複雑なデータ クエリやその他の操作を実行する必要がある場合は、注意して使用してください。

結論

上記の 2 つの方法を使用すると、MySQL 内のすべてのテーブルのデータをクエリするのが非常に簡単になります。 2 番目の方法は最初の方法よりも直接的かつ効率的であるため、大量のデータを処理する場合は情報モード クエリを優先する必要があります。

以上がすべてのテーブルからの mysql クエリ データの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。