程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle的check約束

oracle的check約束

編輯:Oracle教程

oracle的check約束


check約束是指檢查性約束,使用check約束時,將對輸入的每一個數據進行檢查,只有符合條件的記錄才會被保存到表中,從而保證了數據的有效性和完整性。
check約束既有以下的四個特點:
在check約束的表達式中,必須引用表中的一個或多個列,並且表達式的運算結果是一個布爾值。
在一個列種,可以定義多個check約束。
對於同一列,可以同時定義check約束和not null約束。
check約束既可以定義在列級別中,也可以定義在表級中。
在這裡,我們創建了一個p3表作為示范:
SQL> create table p3(
2 pid number(4) not null unique,
3 pname varchar2(10),
4 page number(3) constraint check_p3age check(page>0)--為page指定檢查約束,其中page必須大於0
5 );
表已創建。
SQL> insert into p3 values(1,'aaa',20);
已創建 1 行。
SQL> insert into p3 values(1,'aaa',0);
insert into p3 values(1,'aaa',0)
*
第 1 行出現錯誤:
ORA-02290: 違反檢查約束條件 (SYSTEM.CHECK_P3AGE)


SQL> alter table p3 add constraint check2_p3age check(page<100); --向表中添加約束,是的page的值必須小於100
表已更改。
SQL> insert into p3 values(1,'aaa',100); --當插入的值大於等於100時報錯
insert into p3 values(1,'aaa',100)
*
第 1 行出現錯誤:
ORA-02290: 違反檢查約束條件 (SYSTEM.CHECK2_P3AGE)


SQL> alter table p3 drop constraint check2_p3age; --刪除表中的check約束

表已更改。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved