約束被 DB2 Universal Database(TM)DB2 UDB)用來對數據實施業務規則。本文描述了下列類型的約束:非空NOT NULL)、惟一、主鍵、外鍵、表檢查。此外,還有另一種名為信息約束informational constraint)的約束。與上面所列的這五種約束類型不同的是,信息約束不是由數據庫管理器實施的,但是 SQL 編譯器可用它來提高查詢性能。在這篇文章中,我將只關注上面所列的這幾類約束,而不會討論信息約束。
您可以在創建一個新表時定義一個或多個 DB2 UDB 約束,也可以稍後通過更改表來定義它們。CREATE TABLE 語句是十分復雜的;所以盡管實際上其選項中只有一小部分是用於定義約束的,但是當在語法圖圖1和 圖2)中進行查看時,那些選項本身看上去就相當復雜。通過 DB2 Control Center 可使約束管理更簡單、方便。
圖 1. CREATE TABLE 語句的部分語法,顯示了用於定義約束的子句
約束定義與它們所應用的數據庫相關聯,並存儲在數據庫目錄中表1)。您可以查詢數據庫目錄來檢索並查看該信息。您可以從命令行直接進行請記住要首先建立數據庫連接),同樣,您會發現通過 Control Center 來訪問這些信息會更方便。
可將所創建的約束像對待其他數據庫對象一樣進行處理。它們具有名稱和關聯模式creator ID),並且在有些情況下還能被撤銷刪除)。
圖 2. CREATE TABLE 語句的部分語法,顯示了用於定義約束的子句續)