MySQLで特定のカラムのデータをエクスポートする方法(INTO OUTFILEの使い方)
MySQLで特定のカラムのデータをエクスポートする方法
MySQLでテーブルから特定のカラム(列)のデータだけをファイルに書き出したい場合は、SELECT文とINTO OUTFILEを組み合わせるのが最もシンプルで確実な方法です。この記事では、実際にテーブルを作成し、データを投入したうえで、特定のカラムをテキストファイルへエクスポートする手順を順番に解説します。
基本構文
特定のカラムをファイルに出力する際の基本構文は次のとおりです。
select yourColumnName from yourTableName into outfile 'yourLocationOfFile';
このように、通常のSELECT文の末尾に into outfile '出力先のパス' を付けるだけで、取得した結果セットがそのままファイルとして保存されます。
ステップ1:サンプルテーブルを作成する
まず、動作確認用のテーブルを作成しましょう。
mysql> create table DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName varchar(20),
StudentLastName varchar(20)
);
Query OK, 0 rows affected (0.54 sec)
ここでは、学生ID(自動採番の主キー)、名前(First Name)、苗字(Last Name)を持つ「DemoTable」を作成しました。
ステップ2:INSERTコマンドでレコードを挿入する
続いて、INSERTコマンドを使ってテーブルにデータを登録します。
mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('John','Doe');
Query OK, 1 row affected (0.26 sec)
mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('David','Miller');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('John','Smith');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('Carol','Taylor');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('Sam','Williams');
Query OK, 1 row affected (0.18 sec)
ステップ3:SELECTコマンドで登録データを確認する
INSERTが完了したら、SELECT文でテーブルの中身を確認しておきましょう。
mysql> select * from DemoTable;
実行すると、次のような結果が出力されます。
+-----------+------------------+-----------------+ | StudentId | StudentFirstName | StudentLastName | +-----------+------------------+-----------------+ | 1 | John | Doe | | 2 | David | Miller | | 3 | John | Smith | | 4 | Carol | Taylor | | 5 | Sam | Williams | +-----------+------------------+-----------------+ 5 rows in set (0.00 sec)
ステップ4:特定のカラムをファイルにエクスポートする
それでは本題です。以下のクエリを実行すると、「StudentLastName」カラムのデータだけが指定したファイルに出力されます。
mysql> select StudentLastName from DemoTable into outfile 'E:\StudentLastName.txt'; Query OK, 5 rows affected (0.00 sec)
「Query OK, 5 rows affected」と表示されていれば、5件のデータが正常に書き出されたことを意味します。
ステップ5:出力ファイルを確認する
今回の例では、ファイルは「E:\StudentLastName.txt」に出力されています。ファイルを開いてみると、Doe、Miller、Smith、Taylor、Williamsという5件の苗字データが1行ずつ正しく保存されていることが確認できます。これで、特定のカラムのデータをファイルへエクスポートできました。
補足:INTO OUTFILEを使う際の注意点
- secure_file_privの制限: MySQLの設定によっては、OUTFILEでの出力先ディレクトリが制限されている場合があります。
SHOW VARIABLES LIKE 'secure_file_priv';で許可されたパスを確認してください。 - 同名ファイルは上書き不可: 出力先に同じ名前のファイルが既に存在するとエラーになります。事前に削除するか、別のファイル名を指定してください。
- CSV形式で出力したい場合:
FIELDS TERMINATED BY ','やLINES TERMINATED BY '\r\n'などのオプションを組み合わせれば、Excelなどで扱いやすいCSV形式でも出力できます。
このように、INTO OUTFILEを使えばSQLの知識だけで簡単にデータ抽出・エクスポートが行えます。バックアップや他システムへのデータ連携など、さまざまな場面で活用してみてください。
-
Excelにデータを取り込む方法!AccessやCSVなどからのインポート手順を解説
Microsoft Excelは非常に優れたツールですが、その真価を発揮できるかどうかは、扱えるデータの質と量にかかっています。Microsoft Access、Google広告、Gmailなど、CSVやXLSファイルとしてデータを書き出せるアプリケーションをお使いなら、そのファイルをExcelに取り込む(インポートする)方法をぜひマスターしておきましょう。そうすることで、さまざまな関数や数式を活用してデータをより深く分析したり、表示や管理の方法を自由にコントロールできるようになります。その他の便利なテクニックについては、Excelの使い方ガイド集もあわせてご覧ください。動作環境について※本記
-
MySQLで特定のカラム名を持つテーブルを検索する方法
MySQLで特定のカラム名(列名)を持つテーブルを探したい場合は、システムビューである information_schema.columns を利用します。このビューにはデータベース内のすべてのテーブルとカラムの情報が格納されているため、条件を指定して検索するだけで、目的のカラムを持つテーブルを簡単に特定できます。 基本構文 カラム名からテーブル名を検索する際の基本的な構文は以下の通りです。 select distinct table_name from information_schema.columns where column_name like %yourSearchValue% a