· 

MySQLでデータベースを作成しよう

MySQLでデータベースを作成しよう

目安時間:20分

 

この記事ではMySQLの開発環境を用意しよう記事でインストールしたMySQLに新しくデータベースとテーブルを作成する方法を説明します。
○必要な知識
  • MySQLがインストールされたPC
  • ターミナル操作に関する知識
  • SQL 学習コースⅣまでの知識
以下についてはMySQLの開発環境を用意しよう記事で説明をしているので、この記事には含んでいません。
  • MySQLのインストール方法
  • MySQLの起動・停止方法
*お使いのPCの環境によって参考画像と実際の操作画面の見た目が異なる可能性がありますが、操作は同じになります。
まずはMySQLを起動し、以下コマンドを実行してMySQLにログインをしましょう。MySQLの起動方法は「MySQLの開発環境を用意しよう」記事で確認をしてください。
mysql --user=root --password
ここからは以下の順番で説明をしていきます。
  1. データベースの作成
  2. テーブルの作成
  3. テーブルの動作確認
  4. 作成したテーブルとデータベースの削除

1. データベースの作成

MySQLでは複数のデータベースを作成、管理することができます。
これからローカル環境のMySQLにデータベースを作成する方法を紹介していきます。 まずは現在あるデータベースの一覧をみてみましょう。
一覧を見るには SHOWを使用します。以下クエリを実行してください。
SHOW databases;
*クエリの最後にセミコロン( ; )を忘れないようにしましょう。セミコロンがない状態でEnterを押すとクエリは実行されずに改行されます。改行されてしまった場合は、改行されたままセミコロンを入力してEnterを押すとクエリが実行されます。

 

このように表示がされたかと思います。
基本的にデータベースはプロジェクトごとに分けてデータを管理します。今回はprogateというプロジェクトを新しく始めるという想定でprogateという名前のデータベースを作成してみましょう。
データベースを作成するときはCREATE DATABASE を使います。
以下のクエリを実行してください。

 

CREATE DATABASE progate;
このクエリ実行後 Query OK, 1 row affected と表示されたらデータベースが作成されているはずです。
*最後のセミコロン( ; )がないとクエリが実行されないので注意しましょう。

 

作成ができたら再度データベースの一覧を確認しましょう。画像のように先ほど作ったデータベースが追加されていたらデータベースの作成は完了です。

2. テーブルの作成

今度はデータベースの中にテーブルを作ってみましょう。

データベースの選択

まずはテーブルを作成したいデータベース(今回はprogate)を以下のクエリで選択します。

 

USE progate;
*データベースの選択をしないとテーブルの作成ができないので、テーブル作成をする前に選択をしましょう。
Database changedと表示がされたらデータベースの選択が完了です。
データベースの選択ができたらデータベース内に存在するテーブルの一覧をみてみましょう。以下のクエリを実行してください。
SHOW tables;
作ったばかりのデータベースなのでテーブルが存在しないことを示す Empty set(0.00 sec) が表示されると思います。

テーブルの作成

それでは CREATE TABLE を使ってusersという名前のテーブルを作成しましょう。
  • Macの場合、以下のコマンドを実行してください。
CREATE TABLE users (id INT AUTO_INCREMENT, name TEXT, PRIMARY KEY (id));
  • Windowsの場合、以下のコマンドを実行してください。
CREATE TABLE users (id INT AUTO_INCREMENT, name TEXT, PRIMARY KEY (id)) DEFAULT CHARSET=utf8;
※) DEFAULT CHARSET=utf8は、文字コードをutf8に変更します。

 

今回実行したクエリはテーブル作成の基本的な形となります。カラム名やデータタイプ、カラムにつけるオプションは目的に応じて変わります。プライマリーキーについては次のセクションで説明をするので、ここでは設定方法だけ確認しておきましょう。 
*作るプロジェクトに合わせて必要なカラム、データタイプを指定してテーブルを作成・追加してください。AUTO INCREMENTなど追加できるオプションなどは公式サイトを参照してください。
このクエリ実行後 Query OK, 0 row affected と表示されたらテーブルが作成されているはずです。

作成したテーブルの確認

もう一度テーブル一覧を確認してみましょう。
SHOW tables;

 

先ほど作ったテーブルが確認できると思います。
テーブル構造を表示する DESCRIBE を使って想定どおりにテーブルが作成されたことを確認しましょう。

 

DESCRIBE users;

3. プライマリーキー

usersテーブルを作成したときに idカラムに設定したプライマリーキーの役割について説明をしていきます。
プライマリーキーとはレコードを識別するための制約で、設定したカラムには重複する値を挿入できなくなります。
例えばプライマリーキーの設定されている id カラムに値「1」が存在すると、新しく挿入するレコードの id カラムに値「1」をいれることができなくなります。

 

users テーブルのように id カラムにAUTO_INCREMENTを設定し、id カラムをプライマリーキーに指定することで意識をしなくても重複しない値が割り当てられるようになります。

4. テーブルの動作確認

最後に作成したテーブルにデータを挿入・取得してみましょう。
以下のクエリを順番に実行してください。
取得(挿入前確認)
SELECT * FROM users;
挿入
INSERT INTO users(name) VALUES ('にんじゃわんこ');
取得
SELECT * FROM users;

 

画像のように実行結果が表示されれば動作確認は終了です。

5. データベースを削除してみよう

最後にテーブルとデータベースの削除方法を紹介します。
間違えたり不要になったテーブルやデータベースがあるときに実行してみてください。なお、削除操作は一度実行すると元に戻すことができないので慎重に行いましょう。

テーブルの削除

まずは以下のクエリでデータベースにあるテーブルを確認しましょう。

 

SHOW tables;
次にテーブル(今回はusers)を指定して削除をします。

 

DROP TABLE users;
削除実行後にもう一度 SHOW tables; クエリを実行し指定したテーブルが表示されなくなっているはずです。テーブルに含まれていたデータも一緒に削除されています。

データベースの削除

以下のクエリでデータベースを確認しましょう。

 

SHOW databases;
削除するデータベース名(今回はprogate)が確認できたら次に以下クエリを実行します。インストールした時に作られた4つのデータベース(mysql, sys, information_schema, performance_schema)は消さないように気をつけましょう。

 

DROP DATABASE progate;

削除実行後にもう一度 SHOW databases; クエリを実行してください。指定したテーブルが表示されなくなっているはずです。データベースに含まれていたテーブルも一緒に全て削除されています。

これでローカル環境にデータベースとテーブルを作ることができました!今回紹介したもの以外にもデータベースやテーブルを操作するクエリがあるので、必要に合わせてMySQLの公式サイトなどから調べてみましょう。

 

また、ここまでターミナル上で操作をしてきましたが、データベース操作やデータを見やすくするSQLクライアントと呼ばれるツールもあります。いろいろ触れて使いやすいものを探してみるのもいいかもしれません。