主キーと非NULL
- 2011-01-12 Wed 15:03:43
- SQL
データベースの初期状態は以下のようになっております。

CREATE TABLE文でテーブルを作成する上で、主キー制約と非NULL制約についてよく考えておく必要があります。
前回のCREATE TABLE文を再掲しておきます。
create table account(
id integer primary key,
name varchar(100),
money integer
);
主キーは、一つのデータについて一つだけ割り当てられるものです。これによりデータの識別が可能になります。上の文では、idが主キーになります。
非NULL制約とは、必ずデータを入れる必要があるということです。NULLとはデータが入っていないことを示します。上の文では、非NULL制約はありません。
たとえば、NAMEを非NULL制約にしたかったら、
name varchar(100) not null,
のように書いておきます。
非NULL制約をいい加減にしておくと、後におかしなことが発生する可能性があります。
たとえば、以下のようなSQL文を実行してみましょう。
insert into account(id,money) values(4,4000);
上のSQL文では、データを指定して挿入しました。
insert into 表名 (挿入したいデータ列) values(挿入したいデータ);
ACCOUNTテーブルには、id、name、moneyの3つの列がありますが、今回はidとmoneyのみ指定してデータを入れました。
でデータを取り出してみると、select * from account;

名前がない人の口座に残高がありますね。これはnameを非NULL制約にしておかなかったために発生した不具合です。
データベースを初期状態に戻しておくため、以下のSQL文を実行しておきましょう。
delete from account where id=4;
スポンサーサイト
タグ :
Comments: