<< トップページへ

<< 目次へ

更新日:2013.4.3

データをインポートする



 まず.txtや.csvで保存されたデータファイルをインポート(読み込み)する方法を紹介します。例えば以下のような5つのカラム(変数)で構成されているようなデータファイルが[受験者テーブル.csv]という名前で保存されているとしましょう。mySQLでは、こうした外部ファイルをインポート場合、あらかじめデータベース上にカラム型を定義したテーブル(空のテーブル)を作成しておく必要があります。

ID 年齢 グループ 出身地 得点
001 10 A 群馬 10.223
002 20 A 神奈川 20.345
003 20 C 群馬 30.321
004 40 B 東京 10.894
005 30 B 東京 50.009
006 10 C 東京 40.332
007 50 A 埼玉 10.501
008 30 B 神奈川 40.444
009 20 A 埼玉 40.441
010 60 A 東京 20.004
受験者テーブル.csv


■ローカルのrootユーザーとしてmySQLサーバへログイン

 コマンドプロンプトを起動させて以下のようにコマンドするとパスワードを求められるので、続いてパスワードを入力する。正常にmySQLサーバへログインできたならば、以下のような画面になる。「 mysql> 」がmySQLのコマンド待ちの状態であることを表している。

> mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.51-community MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

 まずは自分が接続したmySQLサーバにどのようなデータベースが存在しているかを確認してみる。

mysql> show databases;

+--------------------+
| Database           | ←この時点では4つのデータベースが存在
+--------------------+  していることが確認できる
| information_schema |
| katasho            |
| mysql              |
| test               |
+--------------------+

 次に練習用のデータベースを作り、正常にデータベースが作成されたかどうかを確認してみる。

mysql> create database rensyu;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| katasho            |
| mysql              |
| rensyu             | ←新しくデータベースが作成された
| test               |
+--------------------+

 データベースを操作する際には、必ず使用するデータベースを指定しておかなければならない。

#### 使用するデータベースの選択
mysql> use rensyu;
Database changed ←使用するデータベースが指定された

 以下はデータファイルのインポートを行うためのコマンド例である。

#### C:/usr/mysqlにある「受験者テーブル.csv」を「jyuken」へ代入する
# テーブルの作成
create table jyuken(
   id varchar(10), 
   age int, 
   grp varchar(10), 
   area varchar(10), 
   score double
);

# CSVファイルの読み込み
load data local infile 'C:/usr/mysql/受験者テーブル.csv' into table jyuken
 fields terminated by ','               # 区切り文字
 lines terminated by '\r\n'             # 改行コード
 ignore 1 lines;                        # ヘッダがある場合の指定
                                        # この1行はヘッダがなければ書かなくてOK

# ーーーー実行例 ここからーーーーー
mysql> select * from jyuken;
+------+------+------+--------+--------+
| id   | age  | grp  | area   | score  |
+------+------+------+--------+--------+
| 001  |   10 | A    | 群馬   | 10.223 |
| 002  |   20 | A    | 神奈川 | 20.345 |
| 003  |   20 | C    | 群馬   | 30.321 |
| 004  |   40 | B    | 東京   | 10.894 |
| 005  |   30 | B    | 東京   | 50.009 |
| 006  |   10 | C    | 東京   | 40.332 |
| 007  |   50 | A    | 埼玉   | 10.501 |
| 008  |   30 | B    | 神奈川 | 40.444 |
| 009  |   20 | A    | 埼玉   | 40.441 |
| 010  |   60 | A    | 東京   | 20.004 |
+------+------+------+--------+--------+
# ーーーー実行例 ここまでーーーーー

 以降のデータテーブル操作の練習のために、以下2つのデータファイルも読み込んでおく。

ID
003
005
006
008
009
合格者リスト.csv
年齢 年齢区分
10 ジュニア
20 ジュニア
30 ミドル
40 ミドル
50 ミドル
60 シニア
70 シニア
80 シニア
90 シニア
年齢区分マスタ.csv
#### C:/usr/mysqlにある「合格者リスト.csv」を「goukaku」へ代入する
# テーブルの作成
create table goukaku(
   id varchar(10)
);

# データのインポート
load data local infile 'C:/usr/mysql/合格者リスト.csv' into table goukaku
   fields terminated by ','               # 区切り文字
   lines terminated by '\r\n'             # 改行コード
   ignore 1 lines;                        # ヘッダがある場合の指定


# ーーーー実行例 ここからーーーーー
mysql> select * from goukaku;
+------+
| id   |
+------+
| 003  |
| 005  |
| 006  |
| 008  |
| 009  |
+------+
# ーーーー実行例 ここまでーーーーー



#### C:/usr/mysqlにある「年齢区分マスタ.csv」を「nenrei」へ代入する
# テーブルの作成
create table nenrei(
   age int, 
   kubun varchar(10)
);

# データのインポート
load data local infile 'C:/usr/mysql/年齢区分マスタ.csv' into table nenrei
   fields terminated by ','               # 区切り文字
   lines terminated by '\r\n'             # 改行コード
   ignore 1 lines;                        # ヘッダがある場合の指定


# ーーーー実行例 ここからーーーーー
mysql> select * from nenrei;
+------+----------+
| age  | kubun    |
+------+----------+
|   10 | ジュニア |
|   20 | ジュニア |
|   30 | ミドル   |
|   40 | ミドル   |
|   50 | ミドル   |
|   60 | シニア   |
|   70 | シニア   |
|   80 | シニア   |
|   90 | シニア   |
+------+----------+
# ーーーー実行例 ここまでーーーーー