オープンソースのデータベースの1つであるMySQLは、YouTubeやFacebookなど有名なサービスでも利用されています。
WindowsでもLinuxでも簡単にインストールが出来るので、週末でスキルアップをするのにもオススメです。
今日は、インストールされているのを前提にデータベースの作成とテーブルの作成をやってみます。
データベースを作成する
データベースはテーブルを入れるための、大きな箱のようなものです。
データベースを作成すると書くと、すごく難しそうに見えますが、実はとても簡単です。
それでは、実際にデータベースを作ってみましょう。
CREATE DATABASE `test_database`;
これを実行すると、「test_database」と言う入れ物(データベース)が作成されます。
データベースを作成する際、文字コードを指定する場合には次のような記載となります。
CREATE DATABASE `test_database` DEFAULT CHARSET [文字コード];
DEFAULT CHARSET [文字コード] を追加し、実行することでデータベースの文字コードを指定することが可能になります。
文字コードには、「utf8」や「utf8mb4」などを指定します。
また、既にデータベースが作成されている場合に、実行したコマンドが空振りする様にしたい場合には、次のような記載をします。
CREATE DATABASE IF NOT EXISTS `test_database` DEFAULT CHARSET [文字コード];
IF NOT EXISTS をデータベース名称の前に指定することで、既にデータベースが存在する場合には、作成が実行されません。
作成したデータベースの確認
以下のコマンドを実行することで、作成されたデータベースが存在するかを確認することが可能です。
SHOW DATABASES;
上記のコマンドを実行すると、以下のような一覧が表示されます。
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test_database | +--------------------+ 4 rows in set (0.01 sec)
ちゃんと作成した「test_database」が存在していることが確認できました。
次に、「test_database」の中にテーブルを作成していきます。
データベースの中にテーブルを作成する
テーブルを作っていきたいところですが、まずはテーブルを作成するデータベースを指定する必要があります。
データベースを指定する際には、以下のコマンドを実行します。
USE test_database
これで、test_databaseが指定されている状態となり、以下のコマンドを実行することで、test_database内にテーブルを作成することが可能です。
CREATE TABLE `test_table` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
テーブルが作成されたかを確認するには、以下のコマンドを実行します。
SHOW TABLES;
実行すると先ほど作成した「test_table」が表示されます。
+-----------------------------+ | Tables_in_test_database | +-----------------------------+ | test_table | +-----------------------------+ 1 rows in set (0.00 sec)
今回は、データベースを作成し、その中にテーブルを作成することを目的としているため、CREATE TABLEについては、別の機会に詳しく解説していきたいと思います。
作成したテーブルの内容を確認するためには、以下のコマンドを実行します。
+-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | MUL | NULL | | +-------------+-------------+------+-----+---------+----------------+ 2 rows in set (0.01 sec)
テーブルの内容が表示されるので、データベース設計書が存在しない場合などにはよく利用するコマンドですので、覚えておくと良いと思います。
単純にCREATE TABLEの内容を確認したい(CREATE TABLEのコマンドが欲しい!)場合には、以下のコマンドを実行します。
SHOW CREATE TABLE `test_table`\G
これを実行することで、以下のような結果が表示されます。
****************************** 1. row ***************************** Table: test_table Create Table: CREATE TABLEtest_table
(id
int(11) NOT NULL AUTO_INCREMENT,name
varchar(20) DEFAULT NULL, ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 PACK_KEYS=0 1 row in set (0.00 sec)
今回は見やすさのために、実行時のコマンドの最後に「\G」を付けて実行しました。
コマンドの最後に「\G」を付けて実行することで、実行結果の表示方法が縦となります。
実行された結果の「Create Table:」以降に、CREATE TABLEの内容が表示されています。
ちなみにテーブルが存在しない状態で、このコマンドを実行するとちゃんとテーブルが作成されます。
総括
今回は、MySQLのデータベースの作成と指定、確認方法、そしてテーブルの作成と確認方法について取り上げてみました。
MySQLAdminなど、GUIベースのツールもありますがコマンドで出来る方が効率がいい場合が多いです。
・・・なにより黒い画面で出来ると、玄人っぽくてカッコイイですよ!