CSVからMySQL v5に新しいテーブルをインポートする最も簡単な方法は何ですか?
質問
ローカルネットワーク上のLinuxサーバーでMySQL 5を実行しています。デスクトップでWindows XPを実行しています。 MySQL GUIツールを見ていたが、助けにはならないと思う。リモートサーバーにApacheをインストールできません& PHPmyAdminのようなものを使用します。
解決
無料のCommunity Editionがあり、インポートするオプションがあるWindowsシステムで SQLyog を使用していますCSV。
自分でこのオプションを使用したことはないので、どれほど良いかはわかりません。ただし、SQLyogは、私がこれまで使用してきた他のすべてのことに優れています。
他のヒント
ルックイン@ロードデータインファイル: http:/ /dev.mysql.com/doc/refman/5.0/en/load-data.html
MySQLシェルまたはクエリブラウザから...
CSVにヘッダーがない場合:
LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable;
CSVにヘッダーがある場合:
LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable IGNORE 1 LINES;
スプレッドシートエディタを使用して、一連のSQLステートメントを作成します。新しい列を先頭に追加し、 insert to tablename values( '
に追加します。他の列を追加して、' '、'
のようなコードでデータを分離します。で終了します。 '');
。自動入力機能を使用して、これらのセルを必要な数の行にドラッグします。シート全体をプレーンテキストエディターにコピーし、余分なタブを削除して、挿入ステートメントの簡単なセットを残します。
これは、任意のデータベースシステムおよび任意のスプレッドシートファイル形式に使用できるソリューションです。さらに、他のデータベースなどのソースからスプレッドシートを作成したり、Webページからコピーして貼り付けたりするのも簡単です。また、Excel、OpenOffice、またはGoogleドキュメントを使用して、デスクトップマシンから非常に高速で利用できます。
Excel および OpenOffice のバージョン。
LOAD DATA INFILE
を使用してこれを実行しましたが、ガレスの例ほど単純ではないことに注意する価値があります(カイはドキュメント)。カンマ区切り値を正しくインポートするために、これを使用しました:
LOAD DATA LOCAL INFILE 'mycsvfile.csv' INTO TABLE mytable
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
これは、各フィールドを引用符で囲み、上部に単一のヘッダー行があるCSVファイルを想定しています。 (デフォルトである必要があるため、 LINES TERMINATED BY
はおそらく必要ありませんが、明示的にすることをお勧めします。)
Toadアプリケーションは驚くほど機能し、フリーウェアです。適切なCSVファイルがある場合、テーブルが作成され、すべてのデータがインポートされます。
CSVを解析してテーブルに挿入する単純なPythonスクリプトを作成します。
csv および mysqldb モジュールをご覧ください。
商用ソフトウェアを少し使用してもかまわない場合は、Navicat( http://mysql.navicat.com / )は非常に便利なソフトウェアで、Mac、Windows、Linuxで利用できます。大規模なCSVファイルをデータベースにインポートするために定期的に使用しています。
Toad for MySQL はこれをうまく行い、インポートをかなり制御します(選択的に一致する列たとえば)最も永続的なのは無料です。
SQLYogも使用しましたが、コミュニティエディションではファイルからのインポートが利用できないため、このための商用バージョンが必要です。
Toadは、すべての主要なデータベースのバージョンに付属する優れたソフトウェアであり、過去にもMSSQLとOracleの両方のバージョンを使用しました。推奨。