Oracle的五種約束
阿新 • • 發佈:2018-07-31
字段 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的五種約束