skillup

技術ブログ

Database

mysqlデータのCSV出力

投稿日:

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

社長が熟練の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を使います。

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

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

http://shusatoo.net/db/mysql/mysql-remote-db-result-output-local-csvfile/

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

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

 

-Database
-

執筆者:


comment

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

関連記事

no image

HAVING句の活用 発展編

今回からはまたまたHAVING句です。 下記のようなテーブル(teams)があり、全員が待機状態のチーム(全員がそろっている)を求めます。 member | team_id | status &#82 …

no image

データ構造の基礎知識 後編 木構造

データベースの学習をしていたときの復習です。 データ構造の基礎知識 前編 メモリとポインタ、配列と連結リスト データ構造の基礎知識 中編 ハッシュ 今回はもう少し複雑な「木構造」について考えてみます。 …

no image

リレーションを含んだテーブルでの副問い合わせ

本日はSQLネタです。 下記のようなテーブル構成があったときとします。 注文ヘッダと注文詳細は(1:N)とします。 ここで、product_id=5を含んだ注文ヘッダーレコードを取り出したいとします。 …

no image

SQL基礎 条件式はunionよりもcaseで

複雑な条件式があったときにcase式を使うことでパフォーマンスを向上させることができます。 ※一般にunionを使うよりも高速なことが多い。 例1 ある条件により別の列を使いたいとき、 [crayon …

no image

第二、第三の正規化&ER図&Check制約

前回第一正規化を話したので、第二、第三に進んでいきます。 Contents1 第二正規化とは?2 第三正規化とは?3 正規化のメリット4 ER図5 本日のSQLネタ Check制約 第二正規化とは? …