<< 目次へ
更新日: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 |
■ローカルの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つのデータファイルも読み込んでおく。
|
|
#### 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 | シニア | +------+----------+ # ーーーー実行例 ここまでーーーーー