このブログにある英単語アプリでも使っているMySQLのインポートとエクスポートについてです。
用語はダウンロード・アップロードでもなんでもいいです。
アップロードする
CSVデータをエクセルで作る
エクセルは普通に列と行で作ればOKだが、テーブルのレイアウトに合わせること。
作って保存するときはCSV形式で。名前は今回はquestions.csvとする。
エクセルで複数のシートを作っていてもCSVは1つのシートしかできないので注意。
エクセルの文字コードはShift-JISなので、サーバ側の文字コードUTF-8Nに変換する。TeraPadなどのエディタで形式を変換して保存できる。改行コードもCRLFからLFに変換しておいた方が無難。
CSVデータをアップする
FTPソフトでアップする。場所は/tmp直下。
CSVデータを確認する
TeraTermなどのターミナルソフトを使ってサーバにログインする。
$ ls /tmp
/tmp直下にquestions.csvがあればOK。
CSVデータをテーブルに取り込む
questions.csvをテーブルに取り込みます。テーブル名はwordsとします。
まずターミナルでサーバにログインして、MySQLにログインします。useを使ってテーブルも選びます。
LOAD DATA LOCAL INFILE '/tmp/questions.csv' INTO TABLE words FIELDS TERMINATED BY ',' ENCLOSED BY '"' (カラム名,カラム名,カラム名,カラム名);
カラム名は既存のテーブルのカラム名に合わせます。もちろん作ったCSVにも合わせます。順番もです。
これを実行すればテーブルにデータが追記されます。既存のデータはクリアされないのでご安心を。
ダウンロードする
ダウンロードはMySQLのデータをCSVとしてPCに引っ張るまで。
CSVにすればエクセルで開けるのでどうとでもなる。
テーブル名はwords。ターミナルでサーバとMySQLにログインしてから行います。
作るcsvのファイル名はwords.csvとします。
SELECT * FROM words INTO OUTFILE '/tmp/words.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
これで/tmpにwords.csvが作成されます。後はFTPソフトを使ってデータを落とせばいい。
落とした後にすぐエクセルでCSVを開いたら文字化けしているはず。
これはアップロードのときと同じで文字コードが違うから。
エクセルで開くまえにTeraPadなどのエディタで文字コードを変換してあげること。
これで一件落着。
コメント