おあそび ぷろぐらみんぐ 日記

プログラミング初心者のおあそびと勉強の記録です。

LINE bot作ってみた詳細④〜MySQL

 

さて、前回まで一応LINE botをWebサーバ上で動かせるようになりました。

 

今回は、botと連携するデータベース、MySQLの部分です。

f:id:beethovenmendelssohn:20170413212233j:plain

 

 

 ・MySQLってなんでしょう?

それはこんな感じ。

(いきなりまるっと引用なのは、下記サイトがわかりやすいからであって、

 手抜きなわけではないですよ、決して。

wa3.i-3-i.info

 

それっぽい言葉で言うと、リレーショナルデータベースの一種ですね。

まぁ私もよくわかってませんが、、

「プログラムに都合がいい、エクセルのすごいやつ」

くらいの感覚でいます。

正しいかどうかは知りません。

 

mySQLを導入

こちらを参考にmySQLのセットアップしました。

dev.classmethod.jp

 

スムーズにいけば簡単なんででしょうけども。

 

私の場合、最初にmySQLインストールする時、なぜかビール飲みながらやってて、そこそこ酔っ払ってたんですよ。

で、途中までやったところで面倒くさくなって寝ちゃったんですね。

 

後日、続きからやろうとしたんですが、どこまでどう設定されてるのかわからない。。

⇛しょうがない、一度アンインストールしてやり直すか、、と思ったけど、macのターミナルの操作も若干覚束ないので、今度はmySQL関連のファイルを全部消すのに一苦労。

全部消したつもりでインストールすると、なんかゴミが残っててうまく再インストールできないんですね。

いやー、大変でしたね。うん。。。

 

mySQL使ってみる。

 さて、mySQLのインストールが出来たら、まずはログイン。

$/hozonbasho/mysql -u root -p
$Enter password:
$ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

あれ、入れん。。。

と思ったら、そもそもmySQL起動してなかった。

 

起動してからログインしましょう。(当たり前すぎる

/hosonbasho/mysql.server start

 

よし、後は書くだけだ。一気に行きます。

mysql> show databases;   //今あるデータベースを確認
+--------------------+
| Database           |
+--------------------+
| information_schema |
| music              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> CREATE DATABASE testtest; //データベースを新しく作る。
Query OK, 1 row affected (0.00 sec)

mysql> show databases; //テーブルが正しく出来たか確認
+--------------------+
| Database           |
+--------------------+
| information_schema |
| music              |
| mysql              |
| performance_schema |
| sys                |
| testtest           |    //これ! できてた。
+--------------------+
6 rows in set (0.00 sec)

mysql> use testtest;      //使うデータベースを選ぶ
Database changed         //変わった

mysql> show tables;     //選んだデータベースにあるテーブルを表示
Empty set (0.00 sec)  //出来たてデータベースなので、まだテーブルはない。

mysql> CREATE TABLE `instrument` (                          //テーブルを新規作成
    ->   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,     //カラム一つ目。id。
    ->   `name` varchar(64) DEFAULT NULL,                   //カラム一つ目。名前。
    ->   `char1` varchar(64) DEFAULT NULL,                  //カラム三つ目。特徴。
    ->   PRIMARY KEY (`id`)                    //おまじない。
    -> );                              // )で閉じて;付けて終わり。
Query OK, 0 rows affected (0.02 sec)              //通った。

mysql> show tables;    //もう1回テーブル表示。
+--------------------+
| Tables_in_testtest |
+--------------------+
| instrument         |   //出来てた。
+--------------------+
1 row in set (0.00 sec)

mysql> show columns from instrument;   //ちゃんと指定したカラムできてるか見てみる。
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(64)      | YES  |     | NULL    |                |
| char1 | varchar(64)      | YES  |     | NULL    |                |  //出来てた。
+-------+------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

//////////以下べらべらとデータ入れてく。///////////////////
mysql> insert into instrument values( 1,"violin","一番小さな弦楽器");
Query OK, 1 row affected (0.01 sec)

mysql> insert into instrument values( 2,"viola","ヴァイオリンよりちょっと小さい");
Query OK, 1 row affected (0.00 sec)

mysql> insert into instrument values( 3,"cello","座って弾く弦楽器");
Query OK, 1 row affected (0.00 sec)

mysql> insert into instrument values( 4,"contrabass","一番巨大な弦楽器");
Query OK, 1 row affected (0.00 sec)
/////////////とりあえず入れ終わった///////////////////

mysql> SELECT * FROM instrument;    //作ったテーブルの中を見てみる。
+----+------------+-----------------------------------------------+
| id | name       | char1                                         |
+----+------------+-----------------------------------------------+
|  1 | violin     | 一番小さな弦楽器                              |
|  2 | viola      | ヴァイオリンよりちょっと小さい                |
|  3 | cello      | 座って弾く弦楽器                              |
|  4 | contrabass | 一番巨大な弦楽器                              |
+----+------------+-----------------------------------------------+
4 rows in set (0.00 sec)   //ちゃんと出来てた。

 

こんな感じです。

慣れればかなりべらべら書けそう。

 

ということで、今回はここまで!

次回は、heroku上のLINE botmySQLを連携させます。