Oracle欄位約束

2021-10-03 17:34:24 字數 1900 閱讀 3066

1.約束是資料庫用來確保資料滿足業務規則的手段,對資料做的條件限制。

2.約束的型別

1. 主鍵約束(primary key)

1. 主鍵約束(primary

key)

1. 非空加唯一約束;

2. 乙個表只有乙個主鍵;

3. 主鍵會預設加索引;

2. 唯一性約束(unique)

2. 唯一性約束(unique

)對於unique約束來講,索引是必須的。如果不存在,就自動建立乙個(unique的唯一性本質上是通過索引來保證的)

unique允許null值,unique約束的列可存在多個null。這是因為,unique唯一性通過btree索引來實現,而btree索引中不包含null。所以,這也造成了在where語句中用null值進行過濾會造成全表掃瞄。

3. 非空約束(not null)

3. 非空約束(not

null

)非空約束作用的列也叫強制列。顧名思義,強制鍵列中必須有值,當然建表時候若使用default關鍵字指定了預設值,則可不輸入。

4. 檢查約束(check)

4. 檢查約束(check

)檢查約束可用來實施一些簡單的規則,比如列值必須在某個範圍內。檢查的規則必須是乙個結果為true或false 的表示式

alter

table ruanjian181 add

constraint rj181_***_ck check

(*** in

('男'

,'女'))

5. 外來鍵約束(foreign key)

5. 外來鍵約束(foreign

key)

外來鍵約束定義在具有父子關係的子表中,外來鍵約束使得子表中的列對應父表的主鍵列,用以維護資料庫的完整性。不過出於效能和後期的業務系統的擴充套件的考慮,很多時候,外來鍵約束僅出現在資料庫的設計中,實際會放在業務程式中進行處理。外來鍵約束注意以下幾點:

1.外來鍵約束的子表中的列和對應父表中的列資料型別必須相同,列名可以不同

2.對應的父表列必須存在主鍵約束(primary

key)或唯一約束(unique)

3.外來鍵約束在子表裡,外來鍵的取值範圍不能大於父表鍵值

4.如果想刪除主表的主鍵,需要先刪除子表的關聯字段

alter

table ruanjian181 add

constraint rj181_id_fk foreign

key(rj_id)

references ruanjian (rj_id)

;

Oracle 字段約束

初識約束 約束是資料庫用來確保資料滿足業務規則的手段,對資料做的條件限制。約束的型別 主鍵約束 primary key 唯一性約束 unique 非空約束 not null 外來鍵約束 foreign key 檢查約束 check 主鍵約束 primary key 非空加唯一約束 乙個表只有乙個主鍵...

Oracle欄位約束

約束的型別 1.主鍵約束 primary key 特點 1.非空加唯一約束 2.乙個表只有乙個主鍵 3.主鍵會預設加索引 create table teacher te id number primary key 2.唯一性約束 unique student num number unique 3....

mysql 字段約束

5.6 操作表的約束 80 5.6.1 mysql支援的完整性約束 81 5.6.2 設定非空約束 not null,nk 81 5.6.3 設定欄位的預設值 default 82 5.6.4 設定唯一約束 unique,uk 84 5.6.5 設定主鍵約束 primary key,pk 85 5....