DBをCSVファイルに落としたい
DB扱わせてもらえることになったので調べたことを書き残しておく.
--目次--
--
経緯
- データをプリントアウトする時,DBをHTMLファイルに,もしくはCSVファイルに落としてくることができればハッピーなので簡単に落としてこれるツールを作る.
- データベースの構造を理解する.
やること
DBをHTMLファイルに落としこむ手順をまとめて,簡単にデータを取ってこれるようにする.
DBをCSVファイルに落とし込む手順をまとめて,簡単にデータを取ってこれるようにする.
試してみる.
前提知識
HTML
略.
HTMLに落とす際生成されるXMLファイルについて.
XML
5分でわかる!XML超入門 第01回 何はともあれXMLって何? | CMSとITアウトソーシングを提供する、XMLソリューションカンパニー
ソースコード見たら察した
公式では10個のポイントにしてまとめてあります,でも7,8,9は「俺にもよくわからん」って書いてあって実際7個です.
簡単にHTMLに置き換えることができる形式.
XMLである理由
- タグを自由に決められることは,データに意味を持たせられるということ.
- タグによってデータを扱うことができる.
- デザインを分離しているので互換性が高い.
XMLパーサ
アプリケーションでXMLを使えるようにするツール
MySQLとXML
MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.2.7 LOAD XML 構文
最終目的のCSVファイルについて.
CSV
Comma Separated Valueカンマで区切った値(察し)
MySQLとCSV
MySQL - csvデータをデータベースに格納する方法 - Qiita
やりたいことは逆だった.データベースをCSVにする.
やったこと
HTMLで出力すること.
テーブルリストを出力する
XMLで出力
% echo "SHOW TABLES;" | mysql -u ${sql user name} -D ${db name} -p${password} -h 0.0.0.0 -P 3307 -X > list.xml
HTMLで出力
% echo "SHOW TABLES;" | mysql -u ${sql user name} -D ${db name} -p${password} -h 0.0.0.0 -P 3307 -H > list.html
あるテーブルの全てのカラムの情報を取ってくること.
XMLで出力% echo "SHOW COLUMNS FROM ${tablename}" | mysql -u ${sql user name} -D ${db name} -p${password} -h 0.0.0.0 -P 3307 -X > ${tablename}.xml
HTMLで出力
% echo "SHOW COLUMNS FROM ${tablename}" | mysql -u ${sql user name} -D ${db name} -p${password} -h 0.0.0.0 -P 3307 -H > ${tablename}.html
本来はXMLファイルで出力したものをXSLファイルと合わせてhtmlにするのがよかったんだけど,諦めた.どうせhtmlは使うことはない.やるとしたら,xslを作ってからmsxsl test.xml test1.xsl -o test.html
でできる.
CSVにするにはどうしたら良いか調べた.
案1:mysqlで直接CSVに落とす
reCatnap: mysql コンソールからCSV出力 » PCスキルの小技・忘却防止メモ
DBから直接CSVにすることは難しそう.コンマ区切りのFIELDS TERMINATED BY ',' とダブルクオーテーションでくくるというOPTIONALLY ENCLOSED BY '"'がうまく通らなかった.
syntaxエラー.
案2:xmlにしてそれをCSVに整形する
SDKとか入れてきたらできるらしいがめんどくさい
ruby - xmlファイル内の要素の属性をcsv形式で保存したい.使用言語はrubyです. - スタック・オーバーフロー
タグで囲われた部分をなんて書いたらいいかわからない.
にelement.textとあるがsyntax errorみたい.
mapおさらいして使ったらうまくいきそう.
このやり方も有効そう.hashをつかって.