SQL文

CREATE TABLE文

CREATE TABLE sample_table (
  sample_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  sample_category_id INTEGER UNSIGNED NOT NULL,
  sample_type_id INTEGER UNSIGNED NOT NULL,
  sample_name VARCHAR(100) NOT NULL,
  sample_number VARCHAR(30) NOT NULL,
  PRIMARY KEY(sample_id),
  CONSTRAINT FK_SAMPLE_SAMPLE_CATEGORY_ID FOREIGN KEY (sample_category_id) REFERENCES sample_category_table(sample_category_id),
  CONSTRAINT FK_SAMPLE_SAMPLE_TYPE_ID FOREIGN KEY (sample_type_id) REFERENCES sample_type_table(sample_type_id),
  INDEX INDEX_SAMPLE_SAMPLE_NUMBER (sample_number)
)
TYPE=InnoDB;

※TYPE=InnoDBは、MySQL5.2からは使えなくなるので、ENGINE=InnoDBとする。

情報表示

インデックスの表示

SHOW INDEX FROM sample_table;
結果
+--------------+------------+------------------------------+--------------+----------------------
| Table        | Non_unique | Key_name                     | Seq_in_index | Column_name        | 
+--------------+------------+------------------------------+--------------+----------------------
| sample_table |          0 | PRIMARY                      |            1 | sample_id          | 
| sample_table |          1 | FK_SAMPLE_SAMPLE_CATEGORY_ID |            1 | sample_category_id | 
| sample_table |          1 | FK_SAMPLE_SAMPLE_TYPE_ID     |            1 | sample_type_id     | 
| sample_table |          1 | INDEX_SAMPLE_SAMPLE_NUMBER   |            1 | sample_number      | 
+--------------+------------+------------------------------+--------------+----------------------
・・・略

テーブル情報の表示

DESC sample_table;
結果
+---------------------+------------------+------+-----+---------------------+----------------+
| Field               | Type             | Null | Key | Default             | Extra          |
+---------------------+------------------+------+-----+---------------------+----------------+
| sample_id           | int(10) unsigned |      | PRI | NULL                | auto_increment |
| sample_category_id  | int(10) unsigned |      | MUL | 0                   |                |
| sample_type_id      | int(10) unsigned |      | MUL | 0                   |                |
| sample_name         | varchar(100)     |      |     |                     |                |
| sample_number       | varchar(30)      |      | MUL |                     |                |
+---------------------+------------------+------+-----+---------------------+----------------+
PRI・・・primary key
UNI・・・unique
MUL・・・重複可能なインデクス

テーブル詳細情報の表示

SHOW TABLE STATUS LIKE 'sample_table' \G

制約とインデックス

制約とインデックス

MySQLの場合、制約を追加すると以下のようにインデックスを生成してくれる。

例えば、外部キー制約を追加した場合、自動的にインデックスも生成される、ということである。

主キー制約  ・・・一意なインデックスを生成する
外部キー制約・・・インデックスを生成する
一意制約    ・・・一意なインデックスを生成する


Comment



Counter: 16869, today: 2, yesterday: 0

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:19 (1276d)