MySQL ver 5.6.38を使用しています
DBを作ったら次はテーブルの作成
CREATE TABLE
基本構文は以下
CREATE TABLE `table_name` ( `col_name1` data_type1, `col_name2` data_type2, ...)
個人的には以下のような構文を固定で用意しておいて、必要箇所を修正して作成しています
(例として、id、nameの2つのカラムを持ったemployeeというテーブルを作る構文とします)
CREATE TABLE IF NOT EXISTS `employee` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
【解説】
■1行目
CREATE TABLE IF NOT EXISTS `employee` (
CREATE TABLEですが、IF NOT EXISTSを入れて、テーブルが存在しない場合のみ作成します。事故防止的なおまじない。
■2行目
`id` int(11) NOT NULL,
`id`という名前のint型11桁のカラムを作成、NOT NULLはNULLを許可しない定義
■3行目
`name` varchar(255) NOT NULL,
`id`と一緒ですね、こっちはvarchar型の255バイトのカラムとして定義
■4行目
PRIMARY KEY (`id`)
PRIMERY KEYに`id`カラムを指定、複数指定したい場合はカンマで繋げます。
PRIMARY KEY (`id`,`name`) みたいな感じ
■5行目
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
MySQLのストレージエンジンにはMyISAMとInnoDBがあります
この違いの説明は今回省略(というかあんましわかってない・・)
今回はとりあえず、デフォルトのInnoDBを指定、
ついで、文字コードにutf8を指定しています。
実際に作ってみる
以下のような手順で実行します
1 | 実行前の確認(show tables) |
2 | CREATE実行(CREATE TABLE) |
3 | 実行後の確認(show tables) |
4 | テーブルの詳細確認(describe employee) |
phpMyAdminなどでGUIベースで作成してもいいですが、私は確認環境でCREATE文を実行して、想定通り作成されたことを確認したのち、本番環境で同じCREATE文を実行します。オペミスはどうしても付きまとうので、試験は大事ですよね。