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

mavenのリモートリポジトリについて

JPAでO/Rマッパーに慣れてからというもの通常のSQLをごりごり書くのが億劫になってきました。 億劫というかいろいろとリスクがありますね。 問題点としてはコンパイルするときにエラーが検知できなかった …

no image

複数GROUP BYでの注意

GROUP BYしたときに件数が増えるという現象があったので一応メモ。というか当たり前のことですが・・・ たとえば以下のようなテーブルがあったとします。 student id student_name …

no image

DBUtils活用

普段はJavaEEで開発を行っているのでデータベースへのアクセスはJPAを活用しています。 ただ、JavaEE環境だとglassfish経由でデータベースを動かしているので、glassfishを動かさ …

no image

外部結合 応用編2

引き続き結合についてです。 Contents1 1対Nの結合に関して2 完全外部結合3 差集合(class_aだけに存在するものとclass_bだけに存在するもの)3.1 class_aのみ3.2 c …

no image

JavaでのSQLの書き方

ちょっと小ネタです。 通常SQLを記述する場合、縦に分けて書くのが見た目にも見やすく、保守性も高いです。 例として

と書くよりは、 [ …

アーカイブ