primaryとindex

テーブル作成

create table test1 (id int, name varchar(10), primary key(id, name));
create table test2 (id int, name varchar(10), index(id));
create table test3 (id int, name varchar(10), unique(id, name));

テーブル定義

// プライマリーの場合は、nullが許可されていない
mysql> show columns from test1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(10) | NO   | PRI | NULL    |       |
+-------+-------------+------+-----+---------+-------+

// index設定をしただけの場合は、nullは許可されている
mysql> show columns from test2;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  | MUL | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

// ユニーク設定をしただけの場合もnullは許可されている
mysql> show columns from test3;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  | MUL | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

その他備考

key = MUL

は、multiple keyの略で、重複可能なキーのこと

テーブル定義

// 以下でテーブル定義をcreate文の形式で確認することができる
show create table {テーブル名};