標籤:student ali 欄位 ora constrain 之間 維護 方式 delete
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的五種約束