在Oracle資料庫中有兩種方式可以定義約束規則(作用相同):
- 欄位層次約束(行內規範):將規定寫在欄位定義的同一行內,作為欄位或屬性定義的某部分。
- 資料表層次約束(行外規範):將規定寫在欄位定義的最後一行,作為資料表定義的某部分。
說明:
- 可以在資料表建立時一起輸入。
- 約束規則必須遵照物件命名規則。如未指定,系統則預設SYS_Cn。
- 用戶資料表上的約束規則可由USER_CONSTRAINTS字典查詢。
約束規則類型及功能說明:
NOT NULL:一定要輸入值,不可為空。
*僅能使用欄位層次約束。
UNIQUE:輸入的是唯一值。
PRIMARY KEY:主鍵(唯一且不可為空值)。
FOREIGN KEY:外部鍵(連至父表的主鍵欄位,為空值代表該筆資料的最後)。
CHECK:指定條件檢核功能,資料值不吻合即不允許新增。
REF:指定欄位的物件定義引用其他。
更改資料表:ALTER TABLE
更改欄位定義:
ALTER TABLE 資料表 MODIFY (欄位 資料類型 [DEFAULT 表達式]
[,欄位 資料類型]...);
增加欄位:
ALTER TABLE 資料表 ADD (欄位 資料類型 [DEFAULT 表達式]
[,欄位 資料類型]...);
停用欄位:
ALTER TABLE 資料表 SET UNUSED(欄位);
刪除停用欄位:
ALTER TABLE 資料表 DROP UNUSED COLUMNS;
刪除欄位:
ALTER TABLE 資料表 DROP (欄位);