skillup

技術ブログ

Database

mysqlデータのCSV出力

投稿日:2015年7月8日 更新日:

ガチンコ塾のブログでもかいたのですが、行動力が大切だなーと思う今日この頃。

社長が熟練のJavaエンジニアで基本的に聞けば、基本的に解決することが多いのですが、外部の勉強会などにも出て情報収集の必要性があるなーと思っております。

んで、本日まとめたいのはテーブルのCSVエクスポート処理です。

通常のCSV出力

DB環境がローカルにある場合は下記コマンド一発で終了です。

SELECT * INTO OUTFILE ‘CSVのファイルパス’ FIELDS TERMINATED BY ‘,’ FROM テーブル名

基本的には通常のSELECT文と同じです、ただINTO~の部分がつくだけといったかんじです。

リモートDBのCSV出力

リモートだとこうはいきません。

その場合、mysql のオプションである-eを使うことになります。

CSV出力用のsqlを作成

CSVの結果を出力するためのSQLを作成します。

例えばフィールドがid,nameだとして下記のようにします。

この時点で下記のようなコマンドになり、CSV形式でデータを出すことはできます。

sedで整形

MySQLは標準ではタブ区切りでしか、ファイルを出力できないので、あとはこれを置換してやります。

タブをカンマ区切りにするためにsedを使います。

これを一気に組み合わせると、下記のようになります。

ちなみにここを参考にしました。

MySQLリモートDBの結果をローカルCSVファイルに出力する方法

やっぱりテキスト処理系の技術(sedなど)は偉大ですねー。

もうちょい勉強せねば・・・

-Database
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

日付がらみの処理に関して(MySQL&Java)

MySQL触りだして3年ぐらいたつんですがいまだに整理できないことが多いです。(特に日付がらみ) ちょっとJavaのネタと合わせて整理しておこうかなーと思います。 Contents1 MySQLの日付 …

no image

SQL基礎 case&groupbyの活用について

主に集計タイプの計算で大活躍するgroupbyについて。 主な用途は集計とカット。特にcase式と連動した集計はかなり使える 例 nameとageで構成されたテーブルがあるとして、年代ごとの人数を出し …

no image

サブクエリ 応用編

本日も引き続きサブクエリです。 前回とちょっと近いですが、下記のような歯抜けのテーブル(sales2)があるとします。 year | sale ——+—&#8212 …

no image

Firebaseでのミニアプリデプロイ

KVS的なDBを使うかもしれず、firebaseの復習をしております。以前、firebaseのサンプルなどちょこちょこ動かしましたが、firebaseに登録をしただけでデプロイまではしておりませんでし …

no image

テーブル設計に関するメリデメ

昨日も書いた記事なんですが、基本的に実装にしても設計にしてもこれが最強っていう手法はなくて(あったとしたら全員がそれを使うのでそもそも選択肢という概念がなくなる・・)メリットデメリットをしっかりと考慮 …

アーカイブ