さて、Excelを使って2年分の当選番号のCSVファイルを作ったので、これを利用してMariaDB内にnumbers3の当選番号DBを作成することに挑戦してみた。
とりあえずは、MariaDBにログインをして1歩ずつ進めて行こう。
活用するDBの準備をしよう
Excelで作成したCSVファイルをDBに変換するためには、まずは基本操作を行うためのDBを作成しなければいけない。
その後、作成したDB内にデータを流し込むためのテーブルを作成し、その作成したテーブルにCSVファイルのデータを流し込むと、目的とする当選番号DBが完成する。
そのために、DBの作成からテーブル作成までの準備を進めていこう。
使用するDBの作成
jkawasaki@raspberrypi:~ $ mysql -u pi -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 34
Server version: 10.5.18-MariaDB-0+deb11u1 Debian 11Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> create database numbers3;
Query OK, 1 row affected (0.002 sec)MariaDB [(none)]>
この前までに作成しておいたMariaDBを操作するユーザーpiでログインを行い、基本となるDBを作成した。
データベースを作成するのは非常に簡単だ。たった1行で済んでしまう。
> create database numbers3;
この1行であっという間にDBは完成だ。
テーブルの作成
次にテーブルを作成するのだが、そのままテーブルを作ったらnumbers3と言うDBではなく無名のDB内にできてしまうので、最初にnumbers3DBに変更する。
使用するDBを変更するためには、use と言うSQL文を使用する。
MariaDB [(none)]> use numbers3;
Database changed
MariaDB [numbers3]>
これでMariaDB [(none)] -> MariaDB [numbers3]となり、使用するDBがnumbers3に切り替わった事が分かる。
テーブルのカラムとしては以下の項目で考える
- ID
- 開催回数
- 日付
- 3桁目
- 2桁目
- 1桁目
プライマリーキーは①のIDとする。
テーブルを作成するSQL文はCREATE TABLEになるので、次のコマンドでテーブルを作成する。
create table result (id int auto_increment not null, kaisi int not null, hizuke date not null, 3digi int(1) not null, 2digi int(1) not null, 1digi int(1) not null, PRIMARY KEY (id));
これで当選結果を入力するためのテーブルができる。
MariaDB [numbers3]> create table result (id int auto_increment not null, kaisi int not null, hizuke date not null, 3digi int(1) not null, 2digi int(1) not null, 1digi int(1) not null, PRIMARY KEY (id));
Query OK, 0 rows affected (0.028 sec)
実際にテーブルがどのように作られているのかを確認する。
テーブルカラムの確認をするにはshow columnsと言うSQL文を使用する。
MariaDB [numbers3]> show columns from result;
と打ち込み実行すると以下の結果が表示された。
+——–+———+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+——–+———+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| kaisi | int(11) | NO | | NULL | |
| hizuke | date | NO | | NULL | |
| 3digi | int(1) | NO | | NULL | |
| 2digi | int(1) | NO | | NULL | |
| 1digi | int(1) | NO | | NULL | |
+——–+———+——+—–+———+—————-+
6 rows in set (0.006 sec)
指定したとおりの項目でテーブルは出来上がった。
これでデータを格納するための器は完成したことになるので、後はCSVファイルのデータを流し込むだけ。
でもテーブル定義と合っていないと、ここでもエラーが出たりデータが格納されなかったりするんですよね。
データの流し込みは、少し落ち着いてから実施することにしよう。
データベース作成 まとめ
今回は、MariaDBにナンバーズ3の当選番号を入れるためのデータベースの器を作成した。
書いて記事にすれば、簡単なように見えるが、実はタイプミスやSQL文の選択ミスなど、思いも寄らないエラーで結構トラブった。
落ち着いてタイプすれば、絶対に問題無く動作するのだが、SQL文のスペルなど変な思い込みでタイプミスをすることが多々あった。
プログラムは嘘をつかない。動かないのは自分がミスをしているからだ。と言う過去の教えを再確認することができた。
次はいよいよデータを流し込む作業。
凡ミスをしないように、次はじっくりと落ち着いて行っていきたいと思う。