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

MySQLのクエリ結果をテキストファイル(.txt)やExcelで使える形式に保存する方法

MySQLでクエリの出力結果をテキストファイルに保存したい場合は、INTO OUTFILEコマンドを使用します。この記事では、実際にテーブルを作成し、データを登録したうえで、クエリ結果を「QueryOutput.txt」というファイルに出力するまでの一連の手順を具体的な例とともに解説します。

1. サンプルテーブルの作成

まず、出力確認用のテーブルを作成しましょう。

mysql> create table SaveintoTextFile
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.55 sec)

2. テーブルへのデータ挿入

続いて、作成したテーブルにレコードを挿入します。

mysql> insert into SaveintoTextFile values(1,'John');
Query OK, 1 row affected (0.44 sec)

mysql> insert into SaveintoTextFile values(101,'Carol');
Query OK, 1 row affected (0.17 sec)

mysql> insert into SaveintoTextFile values(3,'David');
Query OK, 1 row affected (0.14 sec)

3. 登録データの確認

すべてのレコードを表示して、データが正しく登録されているか確認します。

mysql> select * from SaveintoTextFile;

実行結果は以下のとおりです。

+------+-------+
| id   | name  |
+------+-------+
|    1 | John  |
|  101 | Carol |
|    3 | David |
+------+-------+
3 rows in set (0.00 sec)

4. クエリ結果をテキストファイルへ出力する構文

クエリ結果をテキストファイルに出力するための基本構文は以下のとおりです。

SELECT col_name1, col_name2, .......N FROM yourTableName
 INTO OUTFILE "secure-file-priv で指定されたディレクトリのパス";

重要なポイント: MySQL 8.0ではセキュリティ上の制限により、出力先はシステム変数 secure_file_priv で許可されたディレクトリに限定されます。許可されているパスは次のコマンドで確認できます。

SHOW VARIABLES LIKE 'secure_file_priv';

5. 実際にファイルへ出力してみる

それでは、上記の構文を使ってクエリを実行します。ここでは、出力先のファイル名を「QueryOutput.txt」としています。

mysql> SELECT id,name from SaveintoTextFile
    -> INTO OUTFILE "C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/QueryOutput.txt";
Query OK, 3 rows affected (0.02 sec)

テキストファイルが正しく作成されたかどうかは、「Uploads」フォルダを開いて確認してください。

MySQLのクエリ結果をテキストファイル(.txt)やExcelで使える形式に保存する方法

6. 出力ファイルの中身を確認

作成されたテキストファイルを開くと、以下のスクリーンショットのようにクエリ結果がテキストとして書き出されていることがわかります。

MySQLのクエリ結果をテキストファイル(.txt)やExcelで使える形式に保存する方法

応用:Excelで扱いやすい形式(CSV)で出力する

出力したファイルをExcelで利用したい場合は、オプションを追加してCSV形式で書き出すと便利です。

mysql> SELECT id,name from SaveintoTextFile
    -> INTO OUTFILE "C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/QueryOutput.csv"
    -> FIELDS TERMINATED BY ','
    -> OPTIONALLY ENCLOSED BY '"'
    -> LINES TERMINATED BY '\r\n';
  • FIELDS TERMINATED BY ',':フィールド(列)をカンマで区切ります。
  • OPTIONALLY ENCLOSED BY '"':文字列をダブルクォートで囲みます。
  • LINES TERMINATED BY '\r\n':WindowsのExcelでも改行が正しく認識されるよう、CRLFを指定します。

このようにINTO OUTFILEを使えば、MySQLのクエリ結果を簡単にテキストファイルやCSVファイルとして保存でき、Excelなど他のツールでの分析・加工にもすぐに活用できます。

  1. Linuxコマンドの出力をファイルに保存する方法|リダイレクトとlogsaveの使い方

    はじめにこの記事では、Linuxで実行したコマンドの出力結果を、あとから閲覧できるファイルとして保存する方法を詳しく解説します。Linuxサーバーの管理業務に携わっていると、コマンドを実行するたびに大量のメッセージが画面上を流れていくのを目にすることが多いでしょう。その中には些細な情報もあれば、システムの動作に関わる重要なメッセージも含まれています。LinuxやUNIXにはsyslogdという優れたロギング機構が標準で備わっており、システムのメッセージの大部分は/var/logディレクトリ以下の各ログファイルに適切な形式で記録されます。とはいえ、自分が実行したコマンドやスクリプトの出力を、独自

  2. Linuxでターミナルの出力をファイルに保存する5つの方法

    ターミナルはLinuxシステムの中核を担う存在です。Webブラウザのような大規模なプログラムから、テキストエディタのようなシンプルなツールまで、Linux上で動作するすべてのプログラムは、その裏でターミナルのコマンドラインによって実行されています。そのため、OSの仕組みを深く理解したいなら、ターミナルを正しく使いこなせるようになることが重要な第一歩となります。 そんなLinuxのターミナル作業中に、「コマンドの出力結果をファイルとして保存したい」と思う場面は少なくありません。保存したファイルは、別の処理の入力データとして使ったり、ターミナルの操作ログとして記録したりできます。本記事では、ター