目次
MySQLとは?
MySQLとは、リレーショナルデータベース管理システム(RDBMS)の1つです。
アプリケーションのデータを保管する目的で使用されます。
MySQLでは、SQLと呼ばれる言語を用いて、様々な操作を実行することができます。
本記事では、MySQLにおいてデータベースの作成からデータの登録と削除に関する基本的なコマンドの使い方を実例を用いて紹介します。
SQLとは?
SQLとはRDBMSを操作するための言語です。
MySQLでは、SQLを用いて、データベースのテーブルの作成やデータの登録、抽出などを実行することができます。
一般販売されているテキストではSQLコマンドが大文字で記述されていることが多いですが、小文字でも実行できます。
本記事では、分かりやすいようにSQL文は大文字で、それ以外は小文字で記述しています。
MySQLでSQLを実行する方法
MySQLでSQLを実行するためには、CLI(Command Line Interface)を使用します。
macOSの場合はターミナルを、Windowsの場合はコマンドプロンプトを使用してMySQLにログインし、SQLコマンドを実行します。
MySQLにログインする
早速、CLIを用意してMySQLにログインします。
ログインする際にはrootパスワードの入力が必要になります。
rootパスワードを設定していない場合は何も入力せずにエンターキーを押します。
コマンドはmysql -u root -p
です。
1
|
mysql -u root -p
|
上記コマンドを実行後、以下のような出力が表示されたらログイン成功です。
※出力の例はmacOSでMySQLを起動した場合の出力です。Windowsの場合は少々異なります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
% mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.6.51 Homebrew
Copyright (c) 2000, 2021, 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.
|
データベースを作成する
データを保存するためには、データベースを作成する必要があります。
まずはsampleという名前のデータベースを作成してみましょう。
コマンドはmysql> create database データベース名;
です。SQLではコマンドの後ろにはセミコロン;
を付けます。
1
2
|
mysql> CREATE DATABASE sample;
Query OK, 1 row affected (0.00 sec)
|
データベースを表示する
作成済みのデータベースを表示するコマンドは頻繁に使用します。
コマンドはSHOW DATABASES;
です。
以下のように、作成済みのデータベースが表示されたら成功です。
1
2
3
4
5
6
7
8
9
10
|
mysql> SHOW DATABASES;
+--------------------------+
| Database |
+--------------------------+
| information_schema |
| mysql |
| performance_schema |
| sample |
+--------------------------+
8 rows in set (0.01 sec)
|
テーブルとカラムを作成する
データベースの作成が完了したら、テーブルとカラムを作成しましょう。
テーブルは保存するデータをカテゴリー分けする箱のようなものです。
例えば、ユーザに関する情報はuserテーブルに保存します。
テーブル内にはカラムがあります。
カラムには項目となり、それぞれのカラムに対して、データ型と制約を記述します。
ここでは、ユーザに関するテーブルを作成します。カラムには社員番号、名前、メールアドレスを設けます。
事前に使用するデータベースを選択します。
選択するコマンドはUSE データベース名
です。
1
|
mysql> USE sample;
|
その後、テーブルとカラムを作成します。
コマンドはCREATE TABLE テーブル名(カラム名 データ型 制約);
です。
次のように入力してみましょう。
1
2
3
4
5
6
|
mysql> CREATE TABLE user (
number INTEGER(4) NOT NULL,
name CHAR(50) NOT NULL,
email CHAR(255) NOT NULL
);
Query OK, 0 rows affected (0.01 sec)
|
データ型
データ型とは、設定したデータ型に合致する値のみを登録できるようにするものです。
データ型はカラムに対して設定します。
INTEGER
は整数を、CHAR
は255文字までの入力を受け付けます。カッコ内に数字を入れることで、指定した文字数までのみ入力できるようになります。
制約
カラムに対しては何らかの制約を設けることができます。
NOT NULL
を設定した場合、そのカラムの値が空の状態ではデータベースにデータを登録することができなくなります。
テーブルを表示する
作成したテーブルを表示してみましょう。
コマンドはSHOW TABLES;
です。
以下のように、作成したテーブル名が表示されていれば成功です。
1
2
3
4
5
6
7
|
mysql> SHOW TABLES;
+------------------+
| Tables_in_sample |
+------------------+
| user |
+------------------+
1 row in set (0.00 sec)
|
カラムを表示する
テーブルの中にあるカラムを表示します。
コマンドはSHOW COLUMNS FROM テーブル名;
です。
1
2
3
4
5
6
7
8
9
|
mysql> SHOW COLUMNS FROM user;
+--------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-----------+------+-----+---------+-------+
| number | int(11) | NO | | NULL | |
| name | char(50) | NO | | NULL | |
| email | char(255) | NO | | NULL | |
+--------+-----------+------+-----+---------+-------+
3 rows in set (0.00 sec)
|
データを登録する
データベース、テーブルとカラムが用意できたらいよいよデータを登録できるようになります。
コマンドは2通りあります。
1
2
|
mysql> INSERT INTO user(number,name,email)
VALUES (1111,"山田太郎","hoge@hoge.com");
|
カラム名を書かずにデータを入力することもできます。
この場合、入力した値はカラムの左から順に登録されます。
1
|
mysql> INSERT INTO user VALUES (1112,"山田花子","fuga@hoge.com");
|
登録したデータを確認する
登録したデータを確認してみましょう。アスタリスク*
を用いることで、登録された全てのデータを確認することができます。
テーブルに登録されたデータはレコードと呼ばれます。
確認する際は、コマンドSELECT * FROM テーブル名;
を実行します。
1
2
3
4
5
6
7
8
|
mysql> SELECT * FROM user;
+--------+--------------+---------------+
| number | name | email |
+--------+--------------+---------------+
| 1111 | 山田太郎 | hoge@hoge.com |
| 1112 | 山田花子 | fuga@hoge.com |
+--------+--------------+---------------+
2 rows in set (0.00 sec)
|
以上で、データベース、テーブルとカラムの作成とデータの登録は完了です。
レコードを削除する
データベースに登録されたレコードを削除しましょう。
コマンドはDELETE FROM テーブル名 条件式
です。
特定のレコードのみを削除したい場合はWHERE
句に条件式を設定します。
WHERE句を書かずにDELETEコマンドを実行すると、全てのレコードが削除されます。
今回は山田花子さんのレコードを削除します。
1
2
|
mysql> DELETE FROM user WHERE number = 1112;
Query OK, 1 row affected (0.01 sec)
|
削除できたことを確認します。
1
2
3
4
5
6
7
|
mysql> SELECT * FROM user;
+--------+--------------+---------------+
| number | name | email |
+--------+--------------+---------------+
| 1111 | 山田太郎 | hoge@hoge.com |
+--------+--------------+---------------+
1 row in set (0.00 sec)
|
テーブルを削除する
続いて、テーブルを削除してみましょう。
コマンドはDROP TABLE テーブル名;
です。
1
2
|
mysql> DROP TABLE user;
Query OK, 0 rows affected (0.00 sec)
|
削除できたことを確認します。
1
2
|
mysql> SHOW TABLES;
Empty set (0.00 sec)
|
Empty
と表示されていることから、削除できていることが分かります。
データベースを削除する
最後にデータベースを削除しましょう。
コマンドはDROP DATABASE データベース名;
です。
1
2
|
mysql> DROP DATABASE sample;
Query OK, 0 rows affected (0.01 sec)
|
削除できたことを確認します。
1
2
3
4
5
6
7
8
9
|
mysql> SHOW DATABASES;
+--------------------------+
| Database |
+--------------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------------+
8 rows in set (0.00 sec)
|
作成したデータベース・sampleが削除されていることが分かります。
MySQLはSQLコマンドで操作できる
今回はMySQLの基本的なコマンドを紹介しました。
MySQLはCLI上でSQLコマンドを用いて操作します。
基本的なコマンドの使い方はMySQLだけではなく、他のRDBMSでも応用して使用することができます。
慣れるまでは、何か操作を行ったらSHOW
コマンド等で都度確認することがお勧めです。
細やかに確認することで、自分がどのような操作を実行してどのような結果を得られたかが分かります。
SQLコマンドを駆使し、MySQLを使いこなしましょう。
インフラエンジニア専門の転職サイト「FEnetインフラ」
FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。
転職をお考えの方は気軽にご登録・ご相談ください。