【MySQL入門】CREATE DATABASEで最初のデータベースを作ろう!

皆さんMySQLは得意ですか?MySQLはデータベース管理システムなので、一般的なプログラミング言語とは少し勝手が違いますよね。

また、ウェブサービスを作る際はかならずお世話になるので、プログラミング経験のまったくない方がはじめて触ったのがMySQLだった、なんてこともあるかもしれません。

ある程度PCが得意な方はインストールぐらいまでならスムーズに終わらせることができると思います。ですが、インストールが終わったあと、はて、何をすれば良いのか?となってしまうのもデータベース管理システムの特徴かもしれません。

そこで、この記事ではMySQLのインストール後の最初の一歩として、データベースの作成を紹介します。とりあえずインストールは終わったけど、何をすればわからなくなってしまった方必見ですよ。さっそくいってみましょう!

目次

データベースの作成

MySQLのインストールが終わり、rootアカウントでログインするところまでは完了したとしましょう。この段階で最初に覚えるべきクエリはデータベースを作成するものです。ちなみにクエリとはデータベースに対する命令のことをいいます。

同じ意味でSQL文ともいいますね。ここらへんは臨機応変に対応してください。MySQLの学習では、このクエリを一つづつ使えるようになっていき、抽出や結合、削除などの複雑な操作が自由にできるようになることが第1の目標になります。

そのために、まずはクエリで操作するためのデータの入れ物が必要になります。それがこれから学んでいくデータベースなのです。

データベースの作成とクエリの一般規則

というわけで、まずはすべての入れ物になるデータベースを作っていきましょう。データベース作成クエリの書式は次のようになります。

データベース作成の書式

CREATE DATABASE データベースの名前;

大文字で表記されている部分をSQL文のコマンドと呼びます。クエリの基本として、コマンドは大文字で書くのが一般的です。

対して、コマンド以外の部分は小文字のスネークケースで書くことが一般的です。スネークケースとは名詞をアンダーバー(_)でつないでいく表記法です。

my_friends_list

という書き方をみなさんもどこかでみたことがあるのではないでしょうか?余談ですが、蛇の胴体のように単語が長く繋がっていくから「スネーク」ケースなのだとか。

なお、大文字小文字に関しては、厳密な決まりが有るわけではなく、一般的にこのように行われている事が多い、という慣習です。所属先のチームや現場ごとに細かく異なる可能性があるため、柔軟に対応できるようにしましょう。

一方、絶対のルールとして、クエリの末尾にはセミコロン(;)が必要です。セミコロンを忘れると、環境によりますが、延々と改行が続いていつまでもクエリが実行されない!なんて状態になりますので、忘れないようにしましょう。

とくに初心者の頃は忘れがちなので、注意してください。

実際にデータベースを作る:CREATE DATABASE

では、実際に1つデータベースを作ってみましょう。書式にしたがって、次のように入力してください。

データベースの名前:first_db

CREATE DATABASE first_db;

次のような表示が出ればデータベースができた合図です。

Query OK, 1 row affected

若干応用的な話にも触れておきます。データベースの作成時、内部で扱う文字コードを指定したい場合があります。データベース内部で日本語などのマルチバイト文字を扱う場合が当てはまるでしょう。

文字コードの設定がうまくいかないと文字化けしてしまうことがあるのです。このような場合、CREATE DATABASEにCHARACTER SET句を加えることで文字コードを指定することができます。

文字コードを指定したデータベース作成の書式

CREATE DATABASE データベース名 DEFAULT CHARACTER SET 文字コード;

汎用的な文字コードであるUTF-8を指定してデータベースを作成するクエリは次のようになります。

CREATE DATABASE test_db DEFAULT CHARACTER SET utf8;

データベースの文字化けに悩まされたら、思い出してください。

データベースの表示・指定・確認

つづいて、制作したデータベースの表示と指定、確認方法を学んでいきましょう。次のクエリを入力すると、現在MySQL内にある全てのデータベースを確認することができます。

SHOW DATABASES;

このようにいくつかのデータベースとともに、first_dbが作られたのが確認できるはずです。

+--------------------+
| Database           |
+--------------------+
| first_db           |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

導入したてのMySQLで、自分が作ったもの以外のデータベースが存在することが不思議に感じるかもしれません。ですが、これらはMySQLが管理や運用のために自前で生成しているデータベースなので、気にしなくて大丈夫です。

確認ができましたら、今度はfirst_dbを使えるようにする方法を学びましょう。MySQLでは次のクエリを使うことで使用するデータベースを指定し、そのデータベース上で様々な作業をしていきます。

USE first_db;

実行結果

Database changed

使い方はUSEコマンドの後ろにデータベース名を入れるだけです。一緒に今使っているデータベースの確認方法も覚えましょう。

SELECT DATABASE();

このように表示されればデータベースの指定はオッケーです。

+------------+
| DATABASE() |
+------------+
| first_db   |
+------------+
1 row in set (0.00 sec)

最後に、応用的な話をもう一つ。初心者の方は読み飛ばしていただいて構いません。実はSHOWコマンドはMySQL独自のいわゆる方言です。

RDBMSはMySQLだけというのであれば問題ないのですが、将来PostgreSQLなどのほかのシステムを扱う際はSHOWが別の意味で使われていることもある、ということを頭の片隅にでも置いておいてください。

データベースの削除:DROP DATABASE

最後にデータベースの削除方法を学びます。注意点として、この方法で削除してしまったデータベースは基本的に復元することができません。

練習としてデータベースを作成・削除するのは大いにすべきですが、クリティカルな環境で行う際は細心の注意を払うようにしてください。ではデータベースの削除の書式です。

DROP DATABASE データベース名;

今回作成したfirst_dbを削除するクエリは次のようになります。

DROP DATABASE first_db;

実行結果

Query OK, 0 rows affected (0.16 sec)

実際に削除できたかどうかSHOW DATABASESで確認してみましょう。

SHOW DATABASES;

実行結果

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

たしかにfirst_dbが削除できましたね。

まとめ

いかがでしたか?今回はMySQLインストール直後のファーストステップとして、データベースの作成、表示、削除の方法を学んできました。データベースはMySQLのまさに第一歩。

ここからテーブル作成、レコード抽出、結合、ストアドプロシージャやトランザクションと応用に繋がっていきます。まずはデータベースの作成までを楽々こなせるようになって、次はテーブルの作成にステップアップしてください。

テーブル作成に関する記事はこちらに用意してあります。

一歩一歩理解を重ねていき、MySQLを習得していきましょう。この記事が皆様のMySQL学習の一助となれば幸いです。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次