MySQLのLOAD DATA INFILEで「ENCLOSED BY」オプションを使い、引用符付きテキストファイルからテーブルへデータをインポートする方法
入力用のテキストファイルでは、テキストフィールドがダブルクォート(")で囲まれているケースがよくあります。このような形式のファイルからデータをインポートするには、LOAD DATA INFILE ステートメントに ENCLOSED BY オプションを指定します。
以下の例を使って、具体的な手順を見ていきましょう。
例:引用符付きCSVファイルのインポート
1. 元データとなるテキストファイル
次のようなカンマ区切りの値が、A.txt ファイルに保存されているものとします。名前や国などの文字列フィールドがダブルクォートで囲まれている点に注目してください。
100,"Ram","INDIA",25000 101,"Mohan","INDIA",28000
2. インポート先のテーブルを作成する
まず、データを受け取るためのテーブル employee2_tbl を作成します。
mysql> CREATE TABLE employee2_tbl(Id INT, Name VARCHAR(20), Country VARCHAR(20), Salary INT); Query OK, 0 rows affected (0.1 sec)
3. ENCLOSED BY オプションを指定してデータをロードする
次に、LOAD DATA LOCAL INFILE を実行して、ファイルからテーブルへデータを転送します。ここでのポイントは、FIELDS TERMINATED BY ',' でフィールドの区切りを指定し、さらに ENCLOSED BY '"' で各フィールドがダブルクォートで囲まれていることを明示することです。
mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO TABLE employee2_tbl
-> FIELDS TERMINATED BY ',' ENCLOSED BY '"';
Query OK, 2 rows affected (0.16 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
4. インポート結果を確認する
mysql> SELECT * FROM employee2_tbl; +------+-------+---------+--------+ | Id | Name | Country | Salary | +------+-------+---------+--------+ | 100 | Ram | INDIA | 25000 | | 101 | Mohan | INDIA | 28000 | +------+-------+---------+--------+ 2 rows in set (0.00 sec)
上記の結果セットから、A.txt ファイル内のデータが正しくテーブルに転送されたことが確認できます。ダブルクォートは自動的に取り除かれ、Name や Country の値には引用符が含まれていません。
ポイントまとめ
FIELDS TERMINATED BY:フィールド同士の区切り文字(この例ではカンマ)を指定します。ENCLOSED BY:各フィールドを囲む引用符(この例ではダブルクォート)を指定します。これにより、インポート時に引用符が自動的に除去されます。LINES TERMINATED BY '\n':行末の改行コードを明示的に指定することもできます(環境によってはデフォルトで認識されます)。
このように ENCLOSED BY オプションを活用すれば、Excelなどで出力される引用符付きCSVファイルでも、余計な前処理なしにそのままMySQLへ高速にデータを取り込めます。
-
MySQLでテーブルのデータを削除した後にAUTO_INCREMENTを1から再開させる方法
MySQLでデータ削除後にAUTO_INCREMENTを1に戻す方法MySQLでは、DELETE文でレコードを削除してもAUTO_INCREMENTの値はリセットされず、次に挿入されるレコードには続きの番号が割り当てられます。自動インクリメントの値を1に戻したい場合は、TRUNCATE TABLEコマンドを使用します。本記事では、実際のSQL例を使ってその動作を確認していきます。検証用テーブルの作成まず、テーブルを作成します。mysql> create table DemoTable1796 ( StudentId int NOT NULL AUTO_INCREMENT
-
テキストファイルからExcelにデータをインポートする3つの方法
必要なデータがテキストファイルに保存されている場合、そのデータをExcelブックに取り込んで、さまざまな操作や分析を行いたいことがあります。この記事では、テキストファイルからExcelへデータをインポートするための、シンプルかつ効果的な3つの方法をわかりやすく解説します。 説明には、次のようなテキストファイル内のデータをサンプルとして使用します。このデータには、ある会社の営業担当者(Salesman)、製品(Product)、売上(Sales)の情報が含まれています。これらの情報をExcelワークシートに取り込んでいきましょう。 テキストファイルからExcelにデータをインポートする3つの方