クエリ結果を CSV ファイルにエクスポート
データのインポートと同様に、エクスポートも重要です。レポートを作成したり、他のシステムとデータを共有したり、スプレッドシートプログラムで分析を実行したりする必要がある場合があります。SELECT ... INTO OUTFILE ステートメントを使用すると、任意のクエリの結果を直接ファイルに保存できます。
まず、MySQL シェルでテーブルにさらに 2 人の従業員を追加しましょう。
INSERT INTO employees (id, first_name, last_name, email, department) VALUES
(5, 'Alice', 'Johnson', 'alice.johnson@example.com', 'Sales'),
(6, 'Bob', 'Williams', 'bob.williams@example.com', 'Marketing');
次に、employees テーブル全体を employees_export.csv という名前の新しいファイルにエクスポートします。まず、正しいデータベースにいることを確認してください。
SELECT id, first_name, last_name, email, department
FROM company.employees
INTO OUTFILE '/tmp/employees_export.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
SELECT ...: エクスポートするデータを指定する標準的なクエリです。
INTO OUTFILE '/tmp/employees_export.csv': 出力ファイルのフルパスを指定します。セキュリティのため、MySQL はこのファイルが既に存在しないことを要求します。
FIELDS TERMINATED BY ',': フィールドをカンマで区切ります。
ENCLOSED BY '"': 各フィールド値をダブルクォートで囲みます。これは一般的な CSV フォーマットです。
LINES TERMINATED BY '\n': 各行を改行文字で終了します。
コマンドを実行した後、別のターミナルタブに切り替えるか(または新しいタブを開く)、新しく作成されたファイルのコンテンツを表示します。
cat /tmp/employees_export.csv
テーブルの 6 行すべてが、CSV ファイルとしてフォーマットされて表示されます。
"1","John","Doe","john.doe@example.com","Sales"
"2","Jane","Smith","jane.smith@example.com","Marketing"
"3","Peter","Jones","peter.jones@example.com","Engineering"
"4","Mary","Brown","mary.brown@example.com","HR"
"5","Alice","Johnson","alice.johnson@example.com","Sales"
"6","Bob","Williams","bob.williams@example.com","Marketing"