5 oracle下資料完整性約束

2021-10-05 18:08:12 字數 2148 閱讀 2744

oracle下資料完整性約束

為了保證資料的完整性和結構的正確性,oracle也有很多約束條件。

1.資料完整性

為了保證資料的完整性,一般對資料列(字段)進行如下約束,主鍵約束(primary key)、唯一鍵約束(unique)、非空約束(not null)、預設值(default)、檢查約束(check)、外來鍵約束(foreign key)。

1.1 實體完整性約束

要求每乙個表中的主鍵欄位都不能為空或者重複,一般實現的方法是新增唯一約束和主鍵約束。這裡選擇主鍵一般的原則是盡量選擇單鍵、主鍵必須保證唯一性、非空性、一般選擇沒有意義,使用者不關心的字段。

表建立後,新增約束的語句如下:

-- 使用constraint建立指定名稱的約束

constraint pk_id primary key(id);

1.2域完整性約束

要求列的值域的完整性,如資料型別、格式和範圍、是否允許為空等。一般實現的方法是限制資料型別,新增外來鍵約束、預設值約束、非空約束。

-- 限制***的取值

-- 建立表時新增約束

create table test(

id int,

*** char(1) constraint test_*** check (*** in ('0','1'))

);--建立表後新增約束

alter table test add constraint test_*** check(*** in ('0','1'));

1.3引用完整性約束

當處理資料時,通過參照另乙個相關聯的表中的資料,來檢查對錶的資料的操作是否正確。一般實現方法是新增外來鍵約束。

alter table test

add constraint fk_test_id foregin key (tid) references 主表 (tid)

2.表之間的關係

oracle中表與表之間的關係有一對

一、一對多、多對一。

3.資料表的設計正規化

資料表的設計正規化是沒有資料庫之分的,每個資料庫都是一樣的,最基本的三個正規化是:確保每列保持原子性;確保表中的每條資料都和主鍵相關;確保每列都和主鍵列直接相關,而不是間接相關。

4.修改約束的sql語法

-- 建表時新增約束

not null約束必須寫在行上

default 約束必須寫在行上

constraint 約束名 primary key(列)

constraint 約束名 unique(列)

constraint 約束名 check(*** in('男','女'))

constraint 約束名 foreign key(列) reference 其他表(列)

-- 外部新增約束

alter table 表 add constraint 約束名 primary key (列)

alter table 表 alter column 列 set default '預設值'

alter table 表 add constraint 約束名 check (條件)

alter table 表 add constraint 約束名 foreign key (列) references 其他表(列)

alter table 表 add constraint 約束名 unique (列...)

-- 刪除約束

alter table persons drop constraint 約束名

-- 停用約束

alter table 表名add constraint 約束名 unque(status) disable

alter tbale 表名disable constraint 約束名

--啟用約束

alter table 表名enable constraint 約束名;

alter table 表名enable novalidate constraint 約束名;

-- 檢視約束

select * from user_constraints where ...;

oracle資料完整性約束

在oracle資料庫中建立表的同時,我們需要給字段新增 約束條件 注意 orcale資料庫中新增約束的條件跟sql server mysql不完全一樣。實體完整性 主鍵 新增主鍵約束 primary key alter table 表名 add constraint 約束名稱 約束型別 關聯列名 a...

Oracle 資料完整性,約束

check約束,檢查約束,實現域完整性 not null約束,非空約束,實現域完整性 primary key,主鍵約束,實現實體完整性,unique key,唯一性約束,實現實體完整性 foreign key,外來鍵約束,實現參照約束 check 約束 alter table goods add c...

資料完整性約束

實體完整性 實體就是指一條記錄。這種完整性就是為了保證每一條記錄不是重覆記錄。是有意義的 主鍵 非空和唯一.乙個表只有乙個主鍵,但是乙個主鍵可以是由多個字段組成的 組合鍵 標識列 系統自動生成,永遠不重複 唯一鍵 唯一,但是可以為null,只能null一次 域完整性 域就是指字段,它是為了保證欄位的...