スポンサードリンク



MySQL バッチ処理でデータベースを構築する方法。

MySQLの学習に使うデータベースは、テーブル数が8つで、レコード数は多いもので12万件を超えるので、テーブル作成やデータの追加を手作業で行なうのは大変です。

そこで複数のSQL文をファイルにまとめて、バッチ処理でデータベースを構築することにします。仕組みは以前にやったデータベースの復元(リストア)と同じです。

学習用の環境を構築するには、私のデータベースのバックアップファイルを、あなたの環境でそのまま復元するのが一番簡単ですが、それではあなたがデータベースを作る時に応用できません。

今回はSQL文をまとめた「バッチ処理用ファイル」と対応する「CSVファイル」を用意してテーブル作成とデータの追加を一気に行なう方法を解説します。

データの追加はINSERT文を使う方法もありますが、大量のデータの場合はCSVファイルのほうがデータを準備しやすいです。

このSQL文とCSVファイルを変えるだけで、あなたのオリジナルデータベースを作るときにも使えます。


***以下の手順は「SampleDB040」データベースが作成済みという条件です。***


【1】SampleDB040.zipをダウンロードします。


【2】ダウンロードした圧縮ファイルを解凍します。

mysql-270.gif


【3】解凍したファイルを以下の場所に配置します。

C:\mysql\data\sampledb040
mysql-271.gif

*「\」はWindowsではエンマークのことです。


ここからはバッチ処理を行なう手順です。

【4】MySQLを開始します。

1.コマンドプロンプトを起動します。
2.「net start mysql」と入力し、「Enterキー」を押します。

mysql-245.gif

*まだ接続はしません。


【5】「root」ユーザーでテーブルの作成とデータの追加を行ないます。

1.以下のように入力し、「Enterキー」を押します。
mysql -u root -p SampleDB040 < "C:\mysql\data\sampledb040\sampledb040.sql"

2.rootのパスワードを求められるので入力し、「Enterキー」を押します。

mysql-272.gif

エラーが出なければテーブルの作成とデータの追加は完了です。


【6】確認のため「pgtop」ユーザーでMySQLに接続します。

1.「mysql -u pgtop -p -b」と入力し、「Enterキー」を押します。
2.パスワードを求められるので「12345」入力し、「Enterキー」を押します。

mysql-239.gif


【7】以下のSQL文を入力し、使用するデータベースを選択します。

USE SampleDB040;
mysql-116.gif


【8】以下のSQL文を入力し、データベース内にあるテーブルを確認します。

SHOW TABLES;
mysql-273.gif

新しいテーブルが8つ作成されていますね。


【9】テーブルの構造を確認します。「sampledb040.sql」の CREATE文と比べてみてください。

DESC T01Prefecture;
DESC T02City;
DESC T03Town;
DESC T04Customer;
DESC T05Sex;
DESC T06Goods;
DESC T07Slip;
DESC T08Details;


【10】テーブルのデータを確認します。

SELECT * FROM T01Prefecture;
SELECT * FROM T02City;
SELECT * FROM T03Town;
SELECT * FROM T04Customer\G
SELECT * FROM T05Sex;
SELECT * FROM T06Goods;
SELECT * FROM T07Slip;
SELECT * FROM T08Details;

*T03Townはレコード数が12万件を超えるので表示に数分かかります。できればWHERE句を付けて表示してください。
例 WHERE TOWN_CD BETWEEN 1 AND 10000;

*T04Customerのようにフィールド数が多い場合は「\G」を付けるとレコードごとに表示されます。
mysql-274.gif


【11】以下の図を参考にMySQLを終了・停止します。

1.「exit」と入力し、「Enterキー」を押します。
2.「net stop mysql」と入力し、「Enterキー」を押します。

mysql-87.gif


【12】コマンドプロンプトは閉じてください。


【13】「C:\mysql\data\sampledb040」に配置した、sampledb040.sql と csvファイルはもう要らないので削除してください。

*MySQLが作成したファイルを削除しないように注意。


【解説】

「sampledb040.sql」のSQL文については、ほとんど同じパターンの繰り返しなので、1つだけ取り上げます。

(1)テーブルが既にある場合は削除します。インポートが失敗した場合に、テーブルが残っていても再度実行できるようにするためです。

DROP TABLE IF EXISTS T01Prefecture;


(2)テーブルを作成しています。各フィールドの容量は大きめに見積もっています。

CREATE TABLE T01Prefecture (
PREF_CD INT,
PREF_NAME VARCHAR(10),
PRIMARY KEY (PREF_CD)
);

*INTはデフォルトで -2147483648 ~ 2147483647 の整数。


(2)テーブルにファイルからデータを取り込んでいます。

LOAD DATA INFILE "T01Prefecture.csv"
INTO TABLE T01Prefecture FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n";

「C:\mysql\data\sampledb040」に配置するとファイル名だけの指定で済みます。


このように「バッチ処理用ファイル」と対応する「CSVファイル」を用意すると、簡単にデータを取り込めます。


スポンサードリンク






MySQL初心者入門講座TOPへ