プログラミング基礎 PR

MySQLについて理解しよう!

MySQL
記事内に商品プロモーションを含む場合があります

MySQLとは

MySQLとはオープンソースのSQLリレーショナルデータベース管理システム(DBSMS)です。
データベース管理システムには、MySQLの他にOracle DatabaseやPostgreSQLなどがあります。
Web界隈ではMySQLがよく使われるのでMySQLについて知っておきましょう!

リレーショナルデータベースとは、データを複数のテーブルに分けて保存する方式のデータベースです。

MySQLの基本的な使い方

MySQLを使えるようになると、データを保存するシステムを作れるようになります。
さっそく、MySQLの基本を知っていきましょう!

MySQLのインストール[Macの場合]

Macの場合はHomebrewと呼ばれるパッケージマネジャーを利用してMySQLをインストールするのが簡単です。

brew update
brew install mysql

インストールされたMySQLのバージョンを確認することで、MySQLのインストールができているか確認しましょう!

mysql --version
=> mysql  Ver 8.0.30 for macos12.4 on arm64 (Homebrew)

MySQLの8.0.30がインストールされていますね!

インストールするタイミングでバージョンは変わることがあります。

MySQLを起動する

MySQLを起動するにはmysql.server startコマンドを使用します。
以下のようなメッセージが表示されていれば起動しています。
念の為、MySQLサーバーのステータスも確認してみましょう!

mysql.server start
=> Starting MySQL
=> . SUCCESS!

mysql.server status
=> SUCCESS! MySQL running

MySQLにログインする

MySQLを利用するにはログインする必要があります。
ログインするとmysql>のコンソールに入れると思います。

mysql -u ユーザー -p パスワード -h ホスト
// MySQLには最初からrootユーザーが作られているので、今回はrootユーザーを利用しましょう!
mysql -u root


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

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

MySQLからログアウト

MySQLからログアウトするにはexitquitctrl + dを入力するとできます。
一回、MySQLからログアウトできるか試してみましょう。

MySQLを停止する

MySQLを停止するには起動と同じようにmysql.serverコマンドを使用します。

mysql.server stop
=> Shutting down MySQL
=> . SUCCESS

mysql.server status
=>  ERROR! MySQL is not running

MySQLの基本的なコマンド

MySQLにはデータベース、テーブル、データがあります。
データが集まってテーブルになり、テーブルが集まってデータベースになります。

それぞれの扱い方を知っていきましょう!

データベースの作成

データベースの作成にはCREATE DATABASEコマンドを使います。
今回はkumanatsuデータベースを作成していきます!

kumanatsuの部分は好きな名前で作成できます!

mysql> CREATE DATABASE kumanatsu;
Query OK, 1 row affected (0.00 sec)

データベースの確認

データベースの確認にはSHOW DATABASES;コマンドを使います。

先ほどのコマンドで作成したkumanatsuデータベースがありますね!
他のデータベースはMySQLで最初から作成されているデータベースです。

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| kumanatsu          |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

データベースの指定

データベースの指定にはUSEコマンドを使います。

データベースの中にテーブルを作成したり、表示するには使用するデータベースを指定する必要があります。

mysql> USE kumanatsu;
Database changed

データベースの削除

データベースの削除にはDROP DATABASEコマンドを使います。

間違えてデータベースを作成した場合などに、データベースを削除します。

mysql> DROP DATABASE kumanatsu;
Query OK, 0 rows affected (0.00 sec)

テーブルの作成

データベースの作成には成功しました!
続いてはテーブルを作成していきましょう!
テーブルの作成にはCREATE TABLEコマンドを使います。

テーブルの作成には、テーブル名とカラム名とデータ型を指定する必要があります。
一つづ説明しますね!

  • テーブル名・・・作成するテーブルの名前を指定します
  • カラム名・・・テーブルに作成するカラムの名前を指定します
  • データ型・・・カラムのデータ型を指定します

データ型についてはこちらの記事で詳しく解説しています!
簡単に説明するとデータの種類(数字や文字など)のことです。

今回はblogsテーブルを作成します。カラムはidとtitleです。

CREATE TABLE テーブル名 (カラム名 データ型(データオプション), ...);

mysql> CREATE TABLE blogs (id int, title text);
Query OK, 0 rows affected (0.01 sec)

テーブルの確認

テーブルの確認にはSHOW TABLESコマンドを使います。

blogsテーブルが作成されていることがわかりますね!

mysql> SHOW TABLES;
+---------------------+
| Tables_in_kumanatsu |
+---------------------+
| blogs               |
+---------------------+
1 row in set (0.00 sec)

テーブルの構造を確認する

テーブルの構造を確認するにはDESCRIBEコマンドを使います。

blogsテーブルの構造を見ていきましょう!
Fieldがカラム名、Typeがデータ型を表しています。他の項目については今、わからなくても大丈夫です!
ちゃんとidとtitleでカラムが作成されていますね!

mysql> DESCRIBE blogs;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| id    | int  | YES  |     | NULL    |       |
| title | text | YES  |     | NULL    |       |
+-------+------+------+-----+---------+-------+
2 rows in set (0.00 sec)

テーブルの削除

テーブルの削除にはDROP TABLEコマンドを使います。

テーブルの作成を間違えた時やテーブルが不要になった時にテーブルの削除をします。

mysql> DROP TABLE blogs;
Query OK, 0 rows affected (0.00 sec)

データの挿入

これで、データの挿入の準備ができました。
データベースを作成して、テーブルを作成しました。

データの挿入にはINSERT INTOコマンドを使います。
VALUESに挿入したい値を指定します。

mysql> INSERT INTO blogs (id, title) VALUES(1, 'mysql');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO blogs (id, title) VALUES(2, 'ruby');
Query OK, 1 row affected (0.01 sec)

データを挿入する時はカラム名を省略することもできます。

mysql> INSERT INTO blogs VALUES(3, 'JavaScript');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO blogs VALUES(4, 'Linux');
Query OK, 1 row affected (0.00 sec)

これで、4つのデータを挿入することができました!

データの検索

データの検索にはSELECT * FROM テーブル名を使います。
さっそく、先ほど挿入したデータを検索してみましょう!

mysql> SELECT * FROM blogs;
+------+------------+
| id   | title      |
+------+------------+
|    1 | mysql      |
|    2 | ruby       |
|    3 | JavaScript |
|    4 | Linux      |
+------+------------+
4 rows in set (0.00 sec)

*には全てのカラムを表示するという意味があります。

titleカラムだけ表示することもできます!

mysql> SELECT title FROM blogs;
+------------+
| title      |
+------------+
| mysql      |
| ruby       |
| JavaScript |
| Linux      |
+------------+
4 rows in set (0.00 sec)

条件を指定して検索することもできます!
複雑な検索もできますが,検索でデータを絞りこめることがわかればOKです!

mysql> SELECT * FROM blogs WHERE title="ruby";
+------+-------+
| id   | title |
+------+-------+
|    2 | ruby  |
+------+-------+
1 row in set (0.01 sec)

データの更新

データの更新にはUPDATE テーブル名 SET カラム名 = 更新したい値 WHERE 条件;を使います。

titleがrubyだったデータをRubyに更新します。

mysql> UPDATE blogs SET title = 'Ruby'  WHERE title = 'ruby';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

# titleがRubyに更新されていますね!
mysql> SELECT * FROM blogs;
+------+------------+
| id   | title      |
+------+------------+
|    1 | mysql      |
|    2 | Ruby       |
|    3 | JavaScript |
|    4 | Linux      |
+------+------------+
4 rows in set (0.00 sec)

データの削除

データの削除にはDELETE FROM テーブル名 WHERE 条件式;を使います。

titleがLinuxのデータを削除してみましょう!

mysql> DELETE FROM blogs WHERE title='Linux';
Query OK, 1 row affected (0.00 sec)

# titleがLinuxのデータが削除されていますね!
mysql> SELECT * FROM blogs;
+------+------------+
| id   | title      |
+------+------------+
|    1 | mysql      |
|    2 | Ruby       |
|    3 | JavaScript |
+------+------------+
3 rows in set (0.00 sec)

データの更新と削除をする時はWHEREでデータを絞りこみましょう。
データを絞りこまないと全てのデータが更新、削除されてしまいます。

MySQLの基本的な仕組みとコマンドについて説明してきました。
かなり多くのことを説明したので、わからに部分もあったかもしれません。
その場合は、休憩をしてもう一度振り返ってみてください!