テーブルの作成
どうも、webエンジニアのキャリア2年目の者です。今まで、静的サイトのコーディングしかしてなかったので、Webアプリケーション作成に関するお勉強中です。
今回は、MySQLというミドルウェアのアプリケーションを使用して、テーブルの作成手順を紹介したいと思います。
記事メディアを作りたいと言う目標があるので、今回は仮にmedia
というデータベースに、article
というテーブルを作成したいと思います。
データ型
基本のデータ型だけを挙げておきます。
- INT(整数)
- DOUBLE(少数)
- VARCHAR(可変長の文字列)
- TEXT(文章用の長い文字列)
- TIMESTAMP(日付時刻型)
データベースの作成
MySQLの環境の用意や初期設定などは説明しません。すいません。
SQLでmedia
データベースを作成するには下記のコマンドを実行します。
mysql> CREATE DATABASE media;
できているかどうかの確認は以下のコマンドを実行しましょう
mysql> show databases;
操作するデータベースを選択したいとき
mysql> USE media;
データベースを削除したいとき
mysql> DROP DATABASE media;
(注意)確認なしに削除するので、消していいのかちゃんと確認しましょう。
media
データベースにarticle
テーブルを作成するSQLファイル
media
データベースにテーブルを作成します。少し長いのでファイルを作成してSQLから実行しましょう。
create_table_media_article.sql ファイルを作成
CREATE TABLE media.article (
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(50),
content TEXT,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
上記のSQLについて説明していきます。
CREATE TABLE media.article
mediaデータベースの中にarticleテーブルを作成するという意味です。
特定のデータベースのテーブルを指定するときは、 データベース名.テーブル名
によって指定できます。
次は、テーブルの設計の中身について見て行きます。
上記のSQL文では、下記の4つのカラムを作成して行きます。
- id(ID)
- title(タイトル)
- content(本文)
- created_at(登録された日時)
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY
- カラム名:
id
- データ型:
INT
-
AUTO_INCREMENT
:自動的に値が1ずつ増えていく設定 -
NOT NULL
:空データを許さない設定 -
PRIMARY KEY
:データ(レコード)を一意に特定するためのカラムを決めるもので、1つのテーブルに必ず1つは必要
title VARCHAR(50)
- カラム名:
title
- データ型:
VARCHAR
VARCHAR型は文字列であり、(50)は50文字と制限するためのものです。VARCHARでは必ず最大文字数を指定する必要があります。
content TEXT
- カラム名:
content
- データ型:
TEXT
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
- カラム名:
created_at
- データ型:
TIMESTAMP
-
NOT NULL
:空データを許さない設定 -
DEFAULT CURRENT_TIMESTAMP
:現在日時を保存すると言う意味です。
SQLファイルの実行
データベースサーバへ接続して、 格納してあるSQLファイルを実行する。
mysql> source ~/hoge/hoge/create_table_media_article.sql
パスはご自身の環境に合わせて変更してください。
作成したテーブルの確認し、テーブルの設計内容を確認
media
データベースをuse
したら。
mysql> show tables;
+-----------------+
| Tables_in_media |
+-----------------+
| article |
+-----------------+
1 row in set (0.00 sec)
mysql> describe article;
+------------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(50) | YES | | NULL | |
| content | text | YES | | NULL | |
| created_at | timestamp | NO | | CURRENT_TIMESTAMP | |
+------------+-------------+------+-----+-------------------+----------------+
4 rows in set (0.00 sec)
テーブルを削除したい場合
mysql> DROP TABLE media.article;
(注意)確認なしに削除するので、消していいのかちゃんと確認しましょう。
以上で終わります。