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からログアウトするにはexitかquitかctrl + 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の基本的な仕組みとコマンドについて説明してきました。
かなり多くのことを説明したので、わからに部分もあったかもしれません。
その場合は、休憩をしてもう一度振り返ってみてください!