MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

mysqlimportコマンドでCSVファイルをMySQLテーブルにインポートする方法を解説

```html

CSVファイルをMySQLのテーブルにインポートするには、まずインポート元となるCSVファイル(カンマ区切りの値を持つファイル)を用意する必要があります。さらに、インポート先となるMySQLテーブルは、CSVファイルと同じ名前・同じ構造で作成しておかなければなりません。

本記事では、具体的な例を使いながら、mysqlimportコマンドによるCSVデータの取り込み手順をわかりやすく解説します。

前提条件:CSVファイルとテーブルの準備

ここでは、以下のようなデータを持つ「Address.CSV」ファイルを例にします。1行目はヘッダー(列名)になっています。

Name,LastName,Address
Mohan, Sharma, Sundernagar
Saurabh, Arora, Chandigarh
Rajesh, Singh, Lucknow

次に、このCSVファイルのデータを受け入れるためのMySQLテーブル「Address」を作成します。テーブル名はファイル名と一致させ、各列の構造もCSVの内容に対応させておく必要があります。

mysql> DESCRIBE ADDRESS;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| Name     | varchar(20) | YES  |     | NULL    |       |
| LastName | varchar(20) | YES  |     | NULL    |       |
| Address  | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysqlimportコマンドでCSVをインポートする

準備が整ったら、mysqlimportコマンドにいくつかのオプションを指定して実行します。これにより、address.csvの内容がMySQLテーブル「address」へ読み込まれます。

C:\mysql\bin>mysqlimport --ignore-lines=1 --fields-terminated-by=, --verbose --local -u root query C:/mysql/bin/mysql-files/address.csv

Connecting to localhost

Selecting database query

Loading data from LOCAL file: C:/mysql/bin/mysql-files/address.csv into address

query.address: Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
Disconnecting from localhost

使用したオプションの意味

  • --ignore-lines=1:CSVファイルの先頭1行(ヘッダー行)を読み飛ばします。
  • --fields-terminated-by=,:フィールドの区切り文字をカンマ(,)として扱います。
  • --verbose:処理の詳細な進行状況を表示します。
  • --local:クライアント側のローカルファイルからデータを読み込みます。
  • -u root:接続に使用するMySQLユーザーを指定します。

インポート結果の確認

コマンド実行後、SELECT文でテーブルの中身を確認してみましょう。

mysql> Select * from Address;
+---------+----------+-------------+
| Name    | LastName | Address     |
+---------+----------+-------------+
| Mohan   | Sharma   | Sundernagar |
| Saurabh | Arora    | Chandigarh  |
| Rajesh  | Singh    | Lucknow     |
+---------+----------+-------------+
3 rows in set (0.00 sec)

この結果セットから、CSVファイルの値が正しくMySQLテーブルにインポートされたことが確認できます。実行ログの「Records: 3 Deleted: 0 Skipped: 0 Warnings: 0」という表示も、3件すべてのレコードがエラーなく登録されたことを示しています。

  1. 【初心者向け】2つのMySQLテーブルをマージ(統合)する方法をわかりやすく解説

    2つのMySQLテーブルをマージする方法 2つのMySQLテーブルをマージ(統合)するには、INSERT IGNOREステートメントとSELECT文を組み合わせて使用します。基本構文は以下の通りです。 INSERT IGNORE INTO yourTableName1 select *from yourTableName2; この構文では、マージ元テーブル(yourTableName2)のすべてのレコードが、マージ先テーブル(yourTableName1)に挿入されます。IGNOREキーワードを付けることで、主キーの重複などによるエラーが発生しても処理が中断されず、重複行は自動的にスキップされ

  2. MySQLで1つのクエリを使って2つのテーブルに同時にデータを挿入する方法

    はじめにMySQLではストアドプロシージャを活用することで、実質的に1回のクエリ呼び出しで複数のテーブルへデータを挿入することが可能です。この記事では、実際に2つのテーブルを作成し、それらへ一度にレコードを挿入する手順を順を追って解説します。1. 最初のテーブルを作成するまず、学生情報を格納するテーブルを作成します。AUTO_INCREMENTにより、StudentIdが自動的に採番されます。mysql> create table DemoTable(    StudentId int NOT NULL AUTO_INCREMENT PRIMARY