主キー(プライマリーキー)

主キー(プライマリーキー)

そのテーブル内で、一意の重複のない数字、ユニークな数字である必要があります。

f:id:naaaaaaa-tooo:20160322153802p:plain

例えば、上記のデータベースがあるとします。
「性」と「名」が、一番上と一番下のものが一緒ですね。
このような場合、一番下の人のデータを取り出したいと思っても、一番上の人のデータも出てきてしまう可能性があります。

そういったときに、主キー(ユニークな数字)を決めておけば、間違えることなく指定したデータだけを取り出せます。
ここでの場合は、「ID」が主キーとなります。
(「ID」の3を指定すれば、一番下のデータだけを取り出せますね!)



主キーにする方法は 、

ALTER TABLE テーブル名 ADD PRIMARY KEY (主キーにしたいフィールド名, ...);



テーブルを作成するときに、同時に主キーを指定する場合は、

CREATE TABLE テーブル名(フィールド名 データ型, ..., PRIMARY KEY(フィールド名, ...)) ;



主キーを外す時は、

ALTER TABLE テーブル名 DROP PRIMARY KEY;




複合キー

複数のフィールドから構成される主キーのこと。

例えば、名前だけだと主キーにできないが、
名前+住所 の組み合わせであれば、主キーにできる。




オートインクリメント

指定したフィールドに自動的に連番が登録される機能。

CREATE TABLE テーブル名(フィールド名 データ型 AUTO_INCREMENT, ...);




外部キー

他のテーブルと関連づけるためのフィールド。



外部キーにする方法は 、

ALTER TABLE 外部キーがあるテーブル名 ADD FOREIGN KEY (外部キーにしたいフィールド名, ...) 
           REFERENCES 主キーがあるテーブル名 (主キーフィールド);



テーブルを作成するときに、同時に外部キーを指定する場合は、

CREATE TABLE テーブル名(フィールド名 データ型, ..., FOREIGN KEY(フィールド名, ...) 
          REFERENCE 主キーがあるテーブル名 (主キーフィールド)) ;



外部キーを外す時は、

show create table テーブル名;

で、外部キーIDを確認。


CONSTRAINT `fk_tbl_title_tbl_category` FOREIGN KEY (`category_id `) REFERENCES `usr` (`category_id `)

がでてくる。


ALTER TABLE テーブル名 DROP FOREIGN KEY fk_tbl_title_tbl_category;