5中種基本的約束:
1. 主鍵約束(primary key constraint)
2. 唯一性約束(unique constraint)
3. 檢查約束(check constraint)
4. 預設約束(default constraint)
5. 外來鍵約束(foreign key constraint)
約束的檢查功能:
1.立即執行的約束(immediate constraint)
語句執行完後立即檢查是否違背完整性約束
2. 延遲執行約束(deferred constraint)
完整性檢查延遲到整個事務執行結束後
五大約束的語法示例
1.—-新增主鍵約束(將stuno作為主鍵)
alter table student add constraint pk_stuno primary key (stuno)
2.—-新增唯一約束(身份證號唯一,因為每個人的都不一樣)
alter table student add constraint uq_stuid unique(stuid)
3.—-新增預設約束(如果位址不填 預設為「位址不詳」)
alter table student add constraint df_stuaddress default (『位址不詳』) for stuaddress
4.—-新增檢查約束 (對年齡加以限定 15-40歲之間)
alter table stuinfo add constraint ck_stuage check (sage between 15 and 40)
alter table stuinfo add constraint ck_stu*** check (s***=』男』 or s***=』女′)
5.—-新增外來鍵約束 (主表stuinfo和從表stumarks建立關係,關聯欄位stuno
alter table stuinfo add constraint fk_stuno foreign key(stuno)references stuinfo(stuno)
建立和刪除約束例項:
--為sc表的sno建立外來鍵約束:
alter table sc add constraint fk_sc_sno foreign key(sno) references student(sno) deferrable;
--為student表的sage(小於30),s***(m 或 f,預設為m)新增約束:
alter table student add constraint ck_stu_age check(sage <= 30);
alter table student add constraint ck_stu*** check (s***='m' or s***='f')
alter table student add constraint df_stu*** default('m') for s***;
當定義約束時使用了deferrable選項後,就可以設定該約束為立即執行還是延遲執行了,若定義約束時沒有這個選項,則不能將其設定為延遲約束。
set constraint fk_sc_sno immediate;
set constraint fk_sc_sno deferred;
非空約束:
alter table student modify sage not null;
Oracle中的約束
資料的完整性用於確保資料庫資料遵從一定的商業和邏輯規則,在oracle中,資料完整性可以使用約束 觸發器 應用程式 過程 函式 三種方法來實現,在這三種方法中,因為約束易於維護,並且具有最好的效能,所以作為維護資料完整性的首選。1.約束 約束用於確保資料庫資料滿足特定的商業規則。在oracle中,約...
oracle中的五種約束
1.not null 非空 防止null值進入指定的列,在單列基礎上定義,預設情況下,oracle允許在任何列中有null值.2.check 檢查 檢查在約束中指定的條件是否得到了滿足.3.unique 唯一 保證在指定的列中沒有重複值.在該表中每乙個值或者每一組值都將是唯一的.4.primary ...
Oracle中的建表約束
約束是表一級的限制 如果存在依賴關係,約束可以防止錯誤的刪除資料 約束的型別 not null unique primary key foreign key check 使用者可以自定義約束,也可以使用oracle server的sys cn格式命名約束 約束建立的時機 建立表的時候,同時建立約束 ...