• 締切済み

MySQLにCSVファイルを入れる方法

MySQLでデータベースを構築しています。CSVファイルにデータを構築していますがMySQLにインポートする方法が解りません。どうかおしえていただけませんでしょうか?

  • aeic
  • お礼率10% (60/582)

みんなの回答

  • freesk
  • ベストアンサー率57% (4/7)
回答No.1

LOAD文を使う方法があります。 LOAD DATA INFILE 'path/to/file.csv' INTO TABLE <テーブル名> FIELDS TERMINATED BY ','; 詳しくはURLを参照してください

参考URL:
http://www.softagency.co.jp/mysql/Manual/html/manual.ja_Reference.html#LOAD_DATA

関連するQ&A

  • CSVファイルをMYSQLにインポート

    先日からMYSQL+PHPの勉強をはじめました。 データベース構築の際、以前作成したCSVファイルをMYSQLのテーブルとして 利用したいと考えております。 そこで、MYSQLコマンドより、 LOAD DATA LOCAL INFILE 'ファイル名.csv' INTO TABLE テーブル名 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; Query OK, 0 rows affected (0.04 sec) Records: 102 Deleted: 0 Skipped: 102 Warnings: 0 とCSVファイル自体が悪いのかSQL文に問題がるのかインポートがうまくいきません。。 ちなみにCSVは  0,2011/6/2 0:00,80.94,81.32,80.55,80.92 0,2011/5/25 0:00,81.94,82.17,81.8,81.95 0,2011/5/23 0:00,81.77,82.04,81.32,81.99 環境はphpdevで一括でインストールした phpadmin: バージョン2.3.2 MYSQL: MySQL4 apache: 1.3.27 初心者で基本的な質問かもしれないですがどうかご教授お願いします。

    • ベストアンサー
    • MySQL
  • MySQLデータベースにcsvファイルインポートで、エラー

    csvファイルインポートで、エラー phpMyAdminからMySQLデータベースに、csvファイルのインポートを試みたところ、 「CSV 入力のフィールド数が不正です(行: 17)」と表示され、うまくいきません。 データベースの中を確認すると、60レコードのうち、15レコードまでは正常にインポートされています。 元のcsvファイルを確認しても、mysql側とフィールド数は一致しており、問題はないように見受けられました。 phpMyadminのバージョンが、2.6.1-pl3から 2.10.0.2に変わった後、上記の問題が発生するようになりました。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MySQLで連続csvファイルを読み込むために

    MySQL 5.6を最近使い始めました。 大量のcsvファイルで保存されているデータを読み込んで、データベースとして扱いたいのですが、どうすれば良いでしょうか? ファイル名は、 data1_1.csv data1_2.csv data1_3.csv data2_1.csv data2_2.csv といった形で、規則正しく並んでいるのですが、大量にあるため、ループを使って自動化したいと思っております。そのために、LOAD DATA INFILE ファイル名 を使って、このファイル名を順次変えて繰り返す方法がわかりません。 まず、ファイル名に変数が使えるのかと思って @file="data1_1.csv"としてファイル名を置き換えてみたのですが、エラーでした。これでは、この1_1を順次動かす以前に変数が無理なのかも?と思っています。 何かやり方があるようでしたら、どなたかお教えください。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • インターフェースからCSVを取り込んで、MySQLにインポート

    インターフェースからCSVを取り込んで、MySQLにインポート ブラウザのインターフェースからCSVファイルを選択して、MySQLにインポートするようにしたいのですが、 (1)ファイルのアップロード (2)サーバー上にある(アップロードされた)CSVファイルをMySQLにインポート という手順で処理するほかないでしょうか? ローカルのCSVファイルを直接MySQLにインポートするような画期的な方法(ライブラリなど)あったらいいなと思い質問します。 PHPのバージョン:5.2 MySQLのバージョン:5.1 です。 まだ基本設計の段階なので、具体的な質問になっておらず申し訳ありませんが、 よろしくお願いします。

    • 締切済み
    • PHP
  • mysqlとcsvとxmlの違いを教えて下さい。

    完全初心者です。データベースを構築しようとしたとき、mysqlというのがあるのを知ったのですが、自分には敷居が高そうです。 そこで、csvやxmlでお気軽(?)に作ろうと思うのですが、csvやxmlでは絶対に出来ない使い方にはどのようなのがあるのでしょうか?

    • ベストアンサー
    • PHP
  • MySQLのLOAD文を使ってCSVファイルをデータベースにインポートしたい

    MySQLのLOAD文を使ってCSVファイルの内容をデータベースにインポートしたいと思っています。 そこで、下記のような内容のCSVファイルを作成しました ファイル名:word_list1.csv ↓ファイルの内容↓ 1,apple 2,egg 3,music 4,movie 5,baseball 作成した word_list1.csv の保存場所は C:/hole_problem/word_list1.csv です また、word_list1.csv の内容をインポートするデータベース側のテーブルは下記のコマンドにより定義されています CREATE TABLE word_list( id INT AUTO_INCREMENT, name VARCHAR(50) NOT NULL, CONSTRAINT id_pri PRIMARY KEY (id) ) ENGINE=InnoDB; CSVファイル word_list1.csv とデータベース側のテーブル word_list の準備が整ったところで下記のコマンドを実行しました LOAD DATA LOCAL INFILE "C:/hole_problem/word_list1.csv" INTO TABLE word_list FIELDS TERMINATED BY ','; コマンドはエラーなどなく正常に実行されましたが、実行後にデータベースを参照すると下記のようになっています id name 2 egg 3 music 4 movie 5 baseball 35 apple ここで質問なのですが、なぜ、CSVファイルでの順番とインポート後のデータベースでの順番が異なってきてしまうのでしょうか? 教えて頂けると助かります。 また、どのようにすれば順番が変わることなくCSVファイルの内容をデータベースにインポートできるのでしょうか?

    • ベストアンサー
    • MySQL
  • MySQLのCSVファイルの利用について

    MySQLについて質問させていただきます。 現在PC3台ほどで同じネットワーク内にてエクセルファイル共有にて商品在庫管理をしています。 大体15000レコードの30カラムほどのデータが数個あります。 今後別のネットワークからのアクセスやデータ量の増大も考え、 ちゃんとしたデータベースで管理したいなぁと考え始めました。 そこで質問なのですが仮にMySQLを利用するとして、 例えば毎日その在庫データをCSVファイルとしてローカルにダウンロードして各PCにて作業、 作業終了後丸々そのCSVをまたアップロードして変更箇所を更新。 1.回線速度にもよるとは思うのですが、一般的に この程度のデータをダウンロード、アップロードするのに 時間は結構かかってしまうものなのでしょうか? 2.また各PCにて作業、そのデータを各アップロードすると、 各PCにて変更した箇所のみうまい具合に反映することは可能でしょうか? 3.そもそもこのような使い方はありな感じでしょうか?? 4.このような使い方で他にオススメなデータベースなどございますでしょうか?? ちなみにそのデータを使用しての検索、更新作業などがかなり多く、 またデータを利用した様々なマクロを組んでいる為、 できればエクセルを使用したローカルでの作業がかなり望ましい状況です。 ちなみにデーターベースはまったくの素人です。 いけそうであればMySQLを勉強してみようかと思っています。 どなたかアドバイスいただければ嬉しいです。

    • ベストアンサー
    • MySQL
  • mysqlへcsvファイルの読み込み

    mysqlについて質問させて下さい。 エクセルをcsvファイルに変換したものを、データベースに読む込んだのですが、下記のエラーが出ます。 for column 'id' at row 1ect integer value: 'id,number 整数が間違っていると言うことかと思い、エクセルのほうはデータを全部数値にし、mysqlのほうは「int」にしました。 これでも同じエラーが出てしますのですが、原因がお解かりの方、教えて頂けると助かります。 sql文です。 LOAD DATA INFILE "***.csv" INTO TABLE dbname.tablename; カラムはidとnumberのみです。 よろしくお願いします。

  • mysqlのcsvファイル出力について

    今jspファイルでボタンを押すとサーバーにあるデータベースの結果をcsvファイルとして保存するファイルを作りました。 今、作業用のパソコンからテラタームを使い、リモート接続で作業をしています。 なので出力するcsvファイルをサーバーの方ではなく、作業用のパソコンに落としたいのですが、方法はないですかね? 今はjspのほうでSELECT * FROM テーブル名 INTO OUTFILE のコマンドをmysqlに送っています。 phpmyadminで接続してそこからcsvファイルを落とすと閲覧しているパソコンに落ちるようになってるのでそ それができたらなと思います。 何かいい方法はないでしょうか? よろしくお願いします。

  • CSVファイルについて

    MYSQL5.0を使用しています。 MYSQLからCSVファイルを開いて、そこへデータを書き込みたいと思っているんですが、なかなかうまくゆきません。 MYSQLからCSVをオープンする、というコマンドみたいなのはあるんでしょうか?

    • ベストアンサー
    • MySQL