MySQLでCSVファイルをインポートする方法
MySQLでは、ロードデータインファイルステートメントを使用して、CSVファイルがテーブルにインポートされます。以下の手順で行えます。
- CSVファイルをMySQLサーバからアクセス可能な場所に置きます(例: サーバ上の特定のフォルダ)
- MySQL でセッションを開き、目的のデータベースに接続する
- CSVファイル内のデータを格納するためにテーブルを作成します。例えば、CSVファイルに「名前」と「年齢」の2つの列が含まれている場合、次のコマンドを使用してテーブルを作成できます。
- テーブルmytable(
name VARCHAR(255),
age INT
)を作る。 - LOAD DATA INFILE ‘/path/to/csvfile.csv’ INTO TABLE テーブル名;
- LOAD DATA INFILE ‘/path/to/csvfile.csv’
INTO TABLE mytable
FIELDS TERMINATED BY ‘,’
ENCLOSED BY ‘”‘
LINES TERMINATED BY ‘\n’
IGNORE 1 LINES; - 「/path/to/csvfile.csv」はCSVファイルのパスです。必要に応じて、実際のパスに置き換えてください。
- mytableはデータをインポートするテーブル名です。実際の状況に応じて適切なテーブル名に変更してください。
- CSVファイル内の列がカンマ区切りとなっている場合は、FIELDS TERMINATED BY ‘,’とし、それ以外の文字で区切られている場合は、適宜修正する。
- 「”」で囲まれたCSVファイルのフィールドを二重引用符で囲みます。CSVファイル内のフィールドが別の文字で囲まれている場合は、対応するオプションに変更してください。
- 改行文字が’\n’で終了している場合は、CSVファイルの行が改行文字で区切られていることを示します。CSVファイルの行が別の文字で区切られている場合は、このオプションを適宜変更してください。
- IGNORE 1 ROWSは、CSVファイルの先頭一行を無視することを示します。頭一行は一般的にヘッダー行であるためです。
- 上記のコマンドを実行すると、csvファイルのデータが指定されたテーブルにインポートされます。SELECT文を使用して、データが正しくインポートされたことを確認できます。
留意事項。
- LOAD DATA INFILE 文を実行する前に、MySQL サーバーが CSV ファイルの読み取りに必要な権限を持っていることを確認してください。
- CSVファイルのパスにバックスラッシュ (\) が含まれる場合は、エスケープのためにダブルバックスラッシュ (\\) を使用するか、スラッシュ (/) で置き換えます。
- CSVファイル内のデータ型がテーブルのカラム定義と一致しない場合、インポートに失敗または正しくインポートされません。CSVファイル内のデータ型が、テーブル内のカラム定義と一致することを確認してください。
- CSVファイルが非常に大きい場合、インポート処理に時間がかかる可能性があります。LIMIT句を使用するとインポートする行数を制限してインポートを高速化できます。
- 列の定義がCSVファイルの列と完全に一致しない場合は、SET句を使用して列のマッピングを明示的に指定できます。例:SET column_name = value。