データベース初心者のためのMySQLチュートリアル


データベースとは

一定の形式で整理されたデータの集まりです。データベースを効率よく管理、運用するソフトウェアをデータベース管理システムと言います。

MySQLとは

MySQLは、オープンソースで公開されている関係データベース管理システム(リレーショナルデータベース)です。リレーショナルデータベースを略して、RDBと言ったりします。
オープンソースのRDBには,MySQLの他にSQLiteやPostgreSQLなどがあります。
こちらのサイトでは、データベースランキング2位になっております。
MySQLはWordpressにも使われています。

MySQLの特徴

  • wordpressで使われている
  • オープンソースで無料
  • Windows、Mac OS、LinuxなどOSで利用が可能
  • 大規模なサービスでも運用可能
  • GUIツールがある(phpMyAdmin、MySQL Workbenchなど)

環境構築

Homebrew をインストール(インストール済みの方はしなくていいです)

HomebrewはMacのバージョン管理ツールです。Mysqlをインストールするために使います。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
mysqlをインストール

brewコマンドでMysqlをインストールします。

brew install mysql
mysqlのサーバーを起動

mysqlのサーバーを下記のコマンドで起動しましょう。正常に作動がすれば、successと表示されます。

mysql.server start
Starting MySQL
 SUCCESS!
mysqlにログイン

mysqlにはIDとパスワードがあり、デフォルトでは、IDがrootで、パスワードが未設定となっております。なので、下記のコマンドでログインすることができます。

$ mysql -u root -p
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.18 Homebrew

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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にログインできたら、mysql>のようなコマンドが左側に表示されます。exitコマンドを入力すると抜け出すことができます。

mysql> exit
Bye
パスワードを設定

mysqlのパスワードがないとセキュリティ上、よくないので、下記のコマンドでパスワードを設定します。

mysql_secure_installation
パスワード付きのユーザーにログイン

パスワード付きのユーザー(今回はroot)にログインするには、下記のようなコマンドを実行します。

mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 8.0.18 Homebrew

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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> 

データベースシステム用語集

データベースとテーブル

データベースは複数のテーブルを持っています。基本的にプロジェクトごとに1つのデータベースを持ちます。
例えば、「test-project」というデータベースがあり、その中に複数テーブルを作ります。
テーブルは入れるデータの種類ごとに別々の名前でテーブルを作成します。
例えば、ユーザーのメールアドレスやパスワードを入れるテーブルを「users」テーブルと定義したり、投稿データを入れるテーブルを「posts」テーブルとしたり、タスクデータを入れるテーブルを「tasks」テーブルとしたりします。

カラムとレコード

カラムとは、テーブルの縦の列のことを言います。カラムごとで、入れるデータの種類を定義します。
レコードはテーブルの横の行で、実際にデータを追加していきます。

コマンドを実行してデータベースを操作しよう

データベースの一覧を表示

rootユーザーでmysqlにログインして、SHOW DATABASESを実行して、データベース一覧を表示しましょう。

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

データベースへの作成

新しくデータベースを作成しましょう。

mysql> CREATE DATABASE test_project;

データベースの作成ができたら、確認しましょう。

mysql> SHOW DATABASES;

test_projectのデータベースを選択

mysql> USE test_project;

テーブル一覧を表示

テーブルは今のところないので「Empty set (0.01 sec)」と表示されれば良いです。

mysql> SHOW TABLES;
Empty set (0.01 sec)

テーブルを作成

mysql> CREATE TABLE users(
    id INT(11) AUTO_INCREMENT NOT NULL, 
    name VARCHAR(30) NOT NULL ,
    age INT(3) NOT NULL,
    PRIMARY KEY (id));

Query OK, 0 rows affected, 2 warnings (0.04 sec)

テーブルの一覧表示

mysql> show tables;
+------------------------+
| Tables_in_test_project |
+------------------------+
| users                  |
+------------------------+

参考

https://www.sejuku.net/blog/8763#i
https://www.kagoya.jp/howto/webhomepage/mysql/