実際にMySQLを使用してみる

初めまして、ALTURA X エンジニアインターン生の目時と申します。
今回は、前に各RDBMSを調べた際にMySQLについて実際に手を動かしながら記事を書いたので、まとめてさせていただきました。


使用環境

一番上のものをダウンロードしました。ここで、ARMとx64の違いがよくわからなかったので、良い機会に、学習してみました。参考にしたサイトは以下の通りです。

ARMとx64の違い

簡単にいうと、CPUアーキテクチャの違いです。
X64は、従来のパソコンで使用されてきたものであるのに対して、
ARM64は電力の消費が少ないので、スマートフォンのような小型のものに向きで、使用されてきました。しかし、近年では、PCにも使われるようになり、これはM1チップより広く使用されるようになっていったそうです。
今回は、使用環境を踏まえて、ARM64をダウンロードしていくことにしました。

MySQLへログインする

MySQLを使用する際には、大文字で使用しました。(小文字でも使用できるが、わかりやすさのため)

MYSQL -uroot

これでルートというユーザーでMYSQLにログインします。ルートとは、元々用意してくれていたユーザー(パスワードの必要がない)、ユーザーを作って、パスワードも設定してMYSQLを使用することもできますが、今回は簡易のためにこのまま進めました。
今回は、すでに公式サイトからダウンロードしていましたが、、もしダウンロードしていない場合には、

$ brew install mysql

これからダウンロードをすることもできます。後ろに@バージョンをつけることで、特定のバージョンをダウンロードすることもできます。今回は特に指定をせずにダウンロードしました。(指定がないとおそらく最新バージョンがダウンロードされると思われる。)
MYSQL -urootを実行すると、

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 9.0.1 Homebrew

のような表示が出てきます。これでサーバーバージョンが確認できます。

MySQLの基本的な操作を行ってみた。

まず、自分のデータベースを確認する。

mysql > SHOW DATABASES; 

これで、今現在のデータベースを確認することができます。
もし、コロンを忘れると

mysql > SHOW DATABASES
     ->

このようになります。(実際に何度か忘れてこのような表示になりました。)
>はまだSQL文が終了していないことを示しており、;をつけることで終了することを示しています。

CREATE

次に、CREATE文を使用してデータベースを作成してみます。

mysql > CREATE DATABASE datasql;

これでデータベースを作成しました。そうすると、

Query OK, 1 row affected (0.02 sec)

このような表示が出ます。
もう一度show文で確認してみると、

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| datasql            |
| information_schema |
| mysql              |
| performance_schema |
| sqltest            |
| sys                |
+--------------------+
6 rows in set (0.01 sec)

このように、しっかり追加されていることが確認できました。

USE

次に追加したデータベースを使用(USE)してみます。
USE文を用いて、

mysql > USE datasql;
Database changed

上の文を実行すると、下のような表示が出てきました。
USE文を使用して、使用するデータベースを指定しているときには、

mysql > CREATE TABLE table_name(columns_name data_type, ...)

このようにして、テーブル名(カラム名、カラムのデータの型を指定,)(複数ある場合には、’,’をつけて、同じように繰り返す)で作成します。

mysql > CREATE TABLE information (id int, name varchar(10));
Query OK, 0 rows affected (0.04 sec)

以上のように実行しました。テーブル名はinformationで、一個目のカラム名が、id(int型)、二個目のカラム名がname(varchar型)です。
SHOW文で確認してみると、

mysql > SHOW TABLES;
+-------------------+
| Tables_in_datasql |
+-------------------+
| information       |
+-------------------+
1 row in set (0.01 sec)

しっかり追加されていることがわかった。

INSERT

次に追加されたテーブルにデータを挿入(INSERT)していきます。

mysql > INSERT INTO information (id,name) VALUES (00,'A');
mysql > INSERT INTO information (id,name) VALUES (01,'B');

二個の情報を追加してみました。

  • 今回は、情報を一個ずつ追加したが、複数、大規模なデータを追加していくには、どのようにするのかが疑問に思いました。

  • MySQLにおいては、INTOは省略でき、また、カラム名も省略できます。(カラム名の順番通りにデータが渡される)

SELECT

追加した情報を確認するためには、SELECT文を使用します。

mysql > SELECT * FROM テーブル名;
mysql > SELECT *FROM information;
+------+------+
| id   | name |
+------+------+
|    0 | A    |
|    1 | B    |
+------+------+
2 rows in set (0.00 sec)

以上のように表示されました。

DESC

mysql> DESC information;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

DESC テーブル名;で、テーブルが持つ列や型といったテーブルの構造を確認することができる。

追記:rootにパスワードをつけてみる

また、以下の記事を参考にして、rootにもパスワードをつけてみました。

mysql > ALTER USER 'root'@'localhost' IDENTIFIED BY 'ooo';

MySQLのバージョンの違いがあることにより、下の記事と構文が変更になっているところがあったので、そこを修正し、実行しました。
https://blog.codecamp.jp/root-password

まとめ

今回は、自分で1からデータベースを作成し、データを追加しました。小規模であったためにデータを動かすことに対してメリットをそこまで享受できなかったが、SQL文の操作のし易さ、直感性を感じることができました。
また、学習していて、実際に実務でどのように使用され、実行されているのかが非常に気になりました。


いいなと思ったら応援しよう!