oracle 約束的使用

2021-07-27 08:03:47 字數 2404 閱讀 4080

約束是在資料庫中保證資料庫裡表中資料完整性的手段。在oracle 11g中使用的約束有主鍵約束、外來鍵約束、唯一約束、檢查約束、非空約束。其中主鍵約束

和唯一約束都被認為是參照約束。

---1主鍵約束---

主鍵約束是在每個資料表中只能有乙個,但是乙個主鍵約束可以由多個列組成,通常把由多個列組成的主鍵又叫做復合主鍵或組合主鍵。主鍵約束可以保證

主鍵列的資料沒有重複值且值不為空,也可以說是唯一標識表中的一條資料。

---2外來鍵約束---

外來鍵約束之所以被認為是參照約束,是因為它主要用作把乙個表中的資料和另外乙個表中的資料進行關聯,表和表之間的關聯是為了保證資料庫中資料的完

整性,使用外來鍵保證資料完整性,也叫參照完整性。

---3唯一約束---

唯一約束和主鍵約束一樣都是設定表中的列不能重複的約束,區別就是乙個表中只能有乙個主鍵約束,而卻可以由多個唯一約束。通常情況下設定唯一約束

的目的就是使非主鍵列沒有重複值。唯一約束與主鍵約束的另乙個區別就是如果資料表中的某一列中有空值,那麼久不能把這個列設定為主鍵值,而可以設定成唯一

約束。例如,如果在商品資訊表中吧商品編號設定成了主鍵,但是還要保證商品的名稱不重名時,就可以把商品名稱設定為唯一約束。

---4檢查約束---

檢查約束是用來指定表中列的值的取值範圍的。例如在員工資訊表中員工年齡的列,如果要使員工年齡列的值為18~50,就可以檢查約束進行設定,當輸入

的值不能再有效範圍內時,就會出現錯誤。這樣就保證了資料庫中資料的有效性。

---5非空約束---

非空約束是用來約束表中的列不允許為空的。例如,在員工資訊表中員工身份證號碼列,要求員工必須輸入時,可以使用非空約束來保證該列不能為空。

好了,下面實戰:

----使用主鍵約束建立商品資訊表---

在建立表時就建立主鍵約束,只需要使用primary key(欄位名)即可完成。商品型別資訊表主要用來存放商品型別資訊,包括商品型別編號和商品型別

名稱,並把商品型別編號設定成主鍵。

按照設定好的欄位名和資料型別建立表:

sql> create table categoryinfo

2(categoryid varchar2(10),

3categoryname varchar2(30),

4primarykey(categoryid));

sql>表已建立

---使用alter  table語句為表新增主鍵約束---

在建立表時如果沒有建立主鍵約束,可以在修改表時為表新增主鍵約束。

新增主鍵約束語法:

alter   table   table_name

add    constraintsconstraint_nameprimarykey(column_name);

說明:

constraint_name:主鍵約束指定資料表的列名。

column_name:主鍵約束指定資料表的列名。

例:

sql> altertablescott.catetoryinfo

2 addconstraintspk_categoryprimarykey(categoryid);

sql>表已修改

這樣就建立了主鍵約束,主鍵約束名的名稱是pk_category,建立的主鍵列是categoryid

oracle 約束的使用

約束是在資料庫中保證資料庫裡表中資料完整性的手段。在oracle 11g中使用的約束有主鍵約束 外來鍵約束 唯一約束 檢查約束 非空約束。其中主鍵約束 和唯一約束都被認為是參照約束。1主鍵約束 主鍵約束是在每個資料表中只能有乙個,但是乙個主鍵約束可以由多個列組成,通常把由多個列組成的主鍵又叫做復合主...

oracle中CHECK 約束的使用

check 約束用於限制列中的值的範圍。如果對單個列定義 check 約束,那麼該列只允許特定的值。如果對乙個表定義 check 約束,那麼此約束會基於行中其他列的值在特定的列中對值進行限制。create table 時的 sql check 約束 create table persons p id...

Oracle建立約束 刪除約束

1.定義not null 約束not null 約束只能在列級定義,不能在表級定義 例 create table emp01 eno int not null,name varchar2 10 constraint nn name2 not null,salary number 6,2 2.定義un...