Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

MySQLのCREATE DATABASEステートメントは、データベースの作成時に必須のコマンドです。MySQLを初めて使用するという方は、まず「CREATE DATABASE」から始めることなります。そこで今回の記事では、MySQLビギナーの方に向けてMySQL CREATE DATABASEの主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきましょう。

本記事の要点
  • MySQLのCREATE DATABASEはデータベースを作成する際のコマンド
  • MySQLを使ったCREATE DATABASEのハンズオン

MySQLのCREATE DATABASEとは

MySQLのCREATE DATABASEは、新しいデータベースを作成する機能を持っています。MySQLなどデータベースを扱う際に、SELECTやINSERTなどのステートメントを使用してデータベースの取得・登録を行うことができます。しかし、これらの操作は「データベース」がなければ行えません。全ての操作の前に、まずは「CREATE DATABAE」を行うことを覚えておきましょう。

ポテパンダの一言メモ

データベースとデータの関係について説明しましょう。

「電話帳」を想像してみてください。電話帳は、電話番号や住所といった「データ」の集合体です。ここでいう「電話帳」はデータベース、そして「電話番号」などの情報は、データを指します。

ちなみに「テーブル」という言葉を聞いたことがある人もいるかもしれません。これも電話帳で表すと「電話番号や住所を整理する表」に例えることができます。

データベースは仮想の存在のため、現実の何かと完全に一致することはありませんが、SQLを学び始めた段階では身近な物に例えることでイメージがしやすくなるでしょう。

MySQL CREATE DATABASEの最も基本的な構文を見てみましょう。

CREATE DATABASE データベース名;

基本的には、「CREATE DATABASE」の後に任意のデータベース名を指定することで、データベースを作成することができます。

少し複雑な話になりますが「CREATE DATABASE」コマンドを入力する際、同時に「文字コード」の指定を行うことも可能です。

文字コードとは?

「文字コード」という言葉を簡単に説明することはできませんが、簡単に言うと「文字と数字の対応表」です。

コンピュータは数値しか読み取ることができないため、「この数値ならこの文字」と言う対応表が必要となります。例えば、平仮名の「あ」の文字コードは「e3 81 80」です。

文字コードにはいろいろな種類がありますが、世界的によく使われているのがUTF-8という文字コードであることを覚えておきましょう。

MySQL CREATE DATABASEで文字コードを指定する際の構文を見てみましょう。

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

データベースを作成してデータを取得した際に文字化けの問題が起こった際には、文字コードを指定してみましょう。

【関連記事】
▶︎MySQL初心者にマスターしてほしいコマンドラインからの使用方法
▶︎【SQL入門】概要と使い方を易しく解説!データベース言語を始めよう

MySQLでCREATE DATABASEハンズオンにトライ

こちらでは、実際にMySQLというデータベースを使用してCREATE DATABASEを使ってみましょう。

準備

まずはMySQLを使用するための準備をしていきます。

MySQLのインストール・接続

まだMySQLをインストールしていない場合は、インストールしましょう。

$ brew install mysql

MySQLのインストールが終了したら、接続します。

$ sudo mysql -u root -p

データベースの作成

それではCREATE DATABASEを使って、データベースを作成してみましょう。

mysql> CREATE DATABASE test;
Query OK, 1 row affected (0.04 sec)

「Query OK, 1 row affected (〇〇 sec)」と表示されたら、データベースの作成に成功しています。

データベースの確認

データベースの確認を行うことも可能です。

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

「SHOW DATABASES」コマンドを用いることで、すでに存在しているデータベースを確認することができます。

例えば、「CREATE DATABASE」コマンドを入力した際に以下のようなエラーが発生したとしましょう。

mysql> CREATE DATABASE test;
ERROR 1007 (HY000): Can't create database 'test'; database exists

これは「database exists」とある通り、すでに存在しているデータベース名と同じデータベースを作成しようとしたことで発生したエラーです。上記のようにデータベース作成時にエラーが発生した場合は、「SHOW DATABASES」コマンドを用いて、既存のデータベースを確認してみましょう。

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

次に文字コードを指定したデータベースの作成を行いましょう。先ほど紹介した「utf-8」を文字コードに指定して、作成してみます。

mysql> CREATE DATABASE utf8_test DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected, 1 warning (0.01 sec)

こちらも「Query OK, 1 row affected (〇〇 sec)」と表示されていれば、データベースの作成に成功しています。また、指定できる文字コード名は「SHOW CHARACTER SET」コマンドで確認可能です。

mysql> SHOW CHARACTER SET;
+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| armscii8 | ARMSCII-8 Armenian              | armscii8_general_ci |      1 |
| ascii    | US ASCII                        | ascii_general_ci    |      1 |
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| binary   | Binary pseudo charset           | binary              |      1 |
| cp1250   | Windows Central European        | cp1250_general_ci   |      1 |
| cp1251   | Windows Cyrillic                | cp1251_general_ci   |      1 |
| cp1256   | Windows Arabic                  | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic                  | cp1257_general_ci   |      1 |
| cp850    | DOS West European               | cp850_general_ci    |      1 |
| cp852    | DOS Central European            | cp852_general_ci    |      1 |
| cp866    | DOS Russian                     | cp866_general_ci    |      1 |
| cp932    | SJIS for Windows Japanese       | cp932_japanese_ci   |      2 |
| dec8     | DEC West European               | dec8_swedish_ci     |      1 |
| eucjpms  | UJIS for Windows Japanese       | eucjpms_japanese_ci |      3 |
| euckr    | EUC-KR Korean                   | euckr_korean_ci     |      2 |
| gb18030  | China National Standard GB18030 | gb18030_chinese_ci  |      4 |
| gb2312   | GB2312 Simplified Chinese       | gb2312_chinese_ci   |      2 |
| gbk      | GBK Simplified Chinese          | gbk_chinese_ci      |      2 |
| geostd8  | GEOSTD8 Georgian                | geostd8_general_ci  |      1 |
| greek    | ISO 8859-7 Greek                | greek_general_ci    |      1 |
| hebrew   | ISO 8859-8 Hebrew               | hebrew_general_ci   |      1 |
| hp8      | HP West European                | hp8_english_ci      |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak      | keybcs2_general_ci  |      1 |
| koi8r    | KOI8-R Relcom Russian           | koi8r_general_ci    |      1 |
| koi8u    | KOI8-U Ukrainian                | koi8u_general_ci    |      1 |
| latin1   | cp1252 West European            | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European     | latin2_general_ci   |      1 |
| latin5   | ISO 8859-9 Turkish              | latin5_turkish_ci   |      1 |
| latin7   | ISO 8859-13 Baltic              | latin7_general_ci   |      1 |
| macce    | Mac Central European            | macce_general_ci    |      1 |
| macroman | Mac West European               | macroman_general_ci |      1 |
| sjis     | Shift-JIS Japanese              | sjis_japanese_ci    |      2 |
| swe7     | 7bit Swedish                    | swe7_swedish_ci     |      1 |
| tis620   | TIS620 Thai                     | tis620_thai_ci      |      1 |
| ucs2     | UCS-2 Unicode                   | ucs2_general_ci     |      2 |
| ujis     | EUC-JP Japanese                 | ujis_japanese_ci    |      3 |
| utf16    | UTF-16 Unicode                  | utf16_general_ci    |      4 |
| utf16le  | UTF-16LE Unicode                | utf16le_general_ci  |      4 |
| utf32    | UTF-32 Unicode                  | utf32_general_ci    |      4 |
| utf8     | UTF-8 Unicode                   | utf8_general_ci     |      3 |
| utf8mb4  | UTF-8 Unicode                   | utf8mb4_0900_ai_ci  |      4 |
+----------+---------------------------------+---------------------+--------+
41 rows in set (0.00 sec)

「Charset 」カラムに表示されているのが、「DEFAULT CHARACTER SET」後に指定できる文字コードの名称です。

データベースの指定

データベースを作成した後は、使用するデータベースを指定しなければなりません。その際に用いるのが「USE データベース名」コマンドです。こちらも試してみましょう。

mysql> USE test;
Database changed

現在、使用しているデータベースを確認する際には「SELECT DATABASE()」コマンドが使用できます。「test」データベースが指定できているか確認してみましょう。

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| test       |
+------------+
1 row in set (0.00 sec)

現在、使用しているデータベースが「test」であることが確認できました。

データベースの削除

最後にデータベースの削除を行ってみましょう。「DROP DATABASE データベース名」コマンドで削除ができます。

mysql> DROP DATABASE test;
Query OK, 0 rows affected (0.03 sec)

削除できているか、「SHOW DATABASES」コマンドで確認してみましょう。

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

「test」というデータベースが削除されていることが分かります。データベース操作に関するコマンドを一連の流れで覚えておきましょう。

まとめ

今回の記事では、MySQL DATABASEの主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきました。MySQLなどのデータベースを扱う際には、まず最初に行うべきコマンドなので、必ず覚えておくようにしましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。