可分為三種類型:與表有關的約束、域(Domain)約束、斷言(Assertion)。
1、與表有關的約束:是表中定義的壹種約束。可在列定義時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。包括列約束(表約束+NOTNULL)和表約束(PRIMARYKEY、foreignkey、check、UNIQUE)。
2、域(Domain)約束:在域定義中被定義的壹種約束,它與在特定域中定義的任何列都有關系。
3、斷言(Assertion):在斷言定義時定義的壹種約束,它可以與壹個或多個表進行關聯。不必與特定的列綁定,可以理解為能應用於多個表的check約束,因此必須在表定義之外獨立創建斷言。
擴展資料:
完整性約束中包含四個完整性,即域完整性,實體完整性、參照完整性和用戶定義完整性。
1、域完整性為保證數據庫字段取值的合理性。屬性值應是域中的值,這是關系模式規定了的。除此之外,壹個屬性能否為NULL,這是由語義決定的,也是域完整性約束的主要內容。
2、實體完整性,指關系的主關鍵字不能重復也不能取“空值"。壹個關系對應現實世界中壹個實體集。現實世界中的實體是可以相互區分、識別的,也即它們應具有某種惟壹性標識。
3、參照完整性,定義建立關系之間聯系的主關鍵字與外部關鍵字引用的約束條件。關系數據庫中通常都包含多個存在相互聯系的關系,關系與關系之間的聯系是通過公***屬性來實現的。
4、用戶定義完整性,則是根據應用環境的要求和實際的需要,對某壹具體應用所涉及的數據提出約束性條件。
百度百科-數據完整性約束