meideru blog

家電メーカーで働いているmeideruのブログです。主に技術系・ガジェット系の話を書いています。

MySQLでSQLを入門してみた

      2018/10/20

昨日に引き続いて今日もサーバー関連の話です・ω・

【関連記事】
さくらインターネットのVPSを借りました(^o^)

今日は、MariaDBという関係データベース管理システム (RDBMS) でSQLの入門をしてみました。

MariaDBとは、MySQLのことです。

環境

OS: CentOS 7

ハードウェア: さくらインターネットのVPS

接続方法: PuTTY(SSH)

やってみた

とりあえず、一連のシェルの流れを書きます。

「SQLの絵本」という本を参考に、やってみました。とりあえず、成功です\(^o^)/

MariaDB [test]> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

MariaDB [test]> create table tb1(
    -> code int,
    -> title varchar(30),
    -> price int);
Query OK, 0 rows affected (0.01 sec)

MariaDB [test]> insert into tb1
    -> (code, title, price)
    -> values
    -> (1, '鉛筆', 120);
Query OK, 1 row affected (0.01 sec)

MariaDB [test]> select * from tb1;
+------+--------+-------+
| code | title  | price |
+------+--------+-------+
|    1 | 鉛筆   |   120 |
+------+--------+-------+
1 row in set (0.01 sec)

MariaDB [test]> insert into tb1
    -> (code, title, price)
    -> values
    -> (2, 'Cの絵本', 2300);
Query OK, 1 row affected (0.00 sec)

MariaDB [test]> select * from tb1;
+------+------------+-------+
| code | title      | price |
+------+------------+-------+
|    1 | 鉛筆       |   120 |
|    2 | Cの絵本    |  2300 |
+------+------------+-------+
2 rows in set (0.00 sec)

とりあえず、成功です!!

やったー\(^o^)/

 

少し解説します。

文字コードの確認

まず、文字コードを確認しています。

MariaDB [test]> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

見ると、character_set_filesystem以外の項目は全てutf8になっていることがわかります。PuTTYの方でも文字コードをutf8に設定する必要があります。

これがズレてしまうと、文字化けしてしまいます。私も最初は、設定していなくて、「???」みたいな感じで文字化けしていました。

詳しくはググってみてください。

テーブルの作成

テーブルを作っています。

MariaDB [test]> create table tb1(
    -> code int,
    -> title varchar(30),
    -> price int);
Query OK, 0 rows affected (0.01 sec)

テーブル名はtb1、列名は「code」「title」「price」の3つです。

データを登録

データを登録しています。

MariaDB [test]> insert into tb1
    -> (code, title, price)
    -> values
    -> (1, '鉛筆', 120);
Query OK, 1 row affected (0.01 sec)

テーブルtb1にコードが1、タイトルが鉛筆、値段が120という風に登録しています。

データを表示

データを表示しています。

MariaDB [test]> select * from tb1;
+------+--------+-------+
| code | title  | price |
+------+--------+-------+
|    1 | 鉛筆   |   120 |
+------+--------+-------+
1 row in set (0.01 sec)

今登録したデータを表示してみます。

無事、表示されていますね!完璧です!\(^o^)/

もう1つ登録して表示してみる

もう1度、同じことをやってみます。

MariaDB [test]> insert into tb1
    -> (code, title, price)
    -> values
    -> (2, 'Cの絵本', 2300);
Query OK, 1 row affected (0.00 sec)

MariaDB [test]> select * from tb1;
+------+------------+-------+
| code | title      | price |
+------+------------+-------+
|    1 | 鉛筆       |   120 |
|    2 | Cの絵本    |  2300 |
+------+------------+-------+
2 rows in set (0.00 sec)

無事、表示されていますね!

実は色々な苦労をした

実はここまで到達するのに、色々な苦労がありました(´;ω;`)

それは、文字コードについてです・・・。

何度、データを登録しても「???」という風に表示されてしまうのです。

文字コードを全てutf8にして、PuTTYでもutf8にしたところ、無事、表示されるようになりました。

いやぁ・・・。大変でした・・・。

 

ノシ

PS
しばらくの間、データベースとMySQLの勉強をします\(^o^)/

 - 技術系