Oracle中的約束

2021-08-20 22:26:37 字數 1747 閱讀 9573

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格式命名約束 約束建立的時機 建立表的時候,同時建立約束 ...