1. 程式人生 > >Oracle的五種約束

Oracle的五種約束

字段 rim tex tab 不為 use alter p s emp

1.非空(NOT NULL)約束:所定義的列不絕對不能為空;

  例如:將已經創建好的表BOOK中的bookname字段修改為不為空:

  利用 ALTER TABLE.......MODIFY .......NOT NULL;

ALTER TABLE BOOK MODIFY bookname NOT NULL;

2.主鍵(PRIMARY KEY)約束:唯一的標識表中的每一行;

  例如:為已經創建好的表book中的bookid字段添加名稱為“BOOK_PK的主鍵”

  利用ALTER TABLE ..... ADD CONSTRAINT BOOK_PK PRIMARY KEY(字段);

ALTER TABLE BOOK ADD CONSTRAINT BOOK_PK PRIMARY KEY(bookid);

3.唯一(UNIQUE)約束:每列字段的值不能相同;

  例如:為表usertable中的phone字段添加唯一約束

  利用ALTER TABLE ..... ADD CONSTRAINT BOOK_PK PRIMARY KEY(字段);

ALTER TABLE usertable ADD CONSTRAINT PHONE_UK unique (phone);

4.外鍵(FOREIGN KEY)約束:用來維護從表與主表之間的引用完整性;

  例如dept為主表,emp為從表(外鍵表),emp中的外鍵列deptno引用dept中的主鍵

ALTER TABLE emp ADD CONSTRAINT EMP_TEPTNO_FK FOREIGN KEY(deptno) REFERENCES dept(deptno);

  級聯刪除:刪除引用表(主表)中的被引用列時,外鍵表中對應的數據也將被刪除(實現方式如下)

ALTER TABLE emp ADD CONSTRAINT EMP_TEPTNO_FK FOREIGN KEY(deptno) REFERENCES dept ON DELETE CASCADE;

5.條件(CHECK)約束:表中每行都要滿足該約束條件。

  例如:創建已給學生表(Student),為年齡列(Age)定義一個disable狀態的Check約束(Age>0 and Age<120)(建表時的部分代碼如下:)

Age int constraint AGE_CK check(Age>0 and Age<120) disable,

Oracle的五種約束