SQL約束
約束是對表執行對數據的列的規則。這些用於限製哪些數據的類型可以進入的表。這確保數據庫中的數據的準確性和可靠性。
約束可能是列級或表級。列級約束僅應用於一列,而表級彆約束應用於整個表。
下麵是通常用於在SQL中的約束。這些限製已經在討論SQL - RDBMS概念章節中,但它的值得我們在這一點上加以修訂。
-
NOT NULL 約束: 確保列不能有NULL值。
-
DEFAULT約束: 提供未指定時為列的默認值。
-
UNIQUE約束: 確保了在一列中的所有的值是不同(唯一)的。
-
PRIMARY Key(主鍵) : 唯一標識數據庫表中的每一行/記錄。
-
FOREIGN Key(外鍵): 唯一標識任何其他數據庫表中的行/記錄。
-
CHECK約束: CHECK約束可以確保列中的所有值滿足一定的條件。
-
INDEX索引: 使用非常快速地創建和檢索數據庫中的數據。
當一個表是用CREATE TABLE語句創建,也可以使用ALTER TABLE語句創建表,即使創建約束後,約束也可以再次指定。
刪除約束:
您所定義的任何約束可以使用帶有DROP CONSTRAINT選項的ALTER TABLE命令刪除。
例如,刪除EMPLOYEES表的主鍵約束,可以使用下麵的命令:
ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;
一些實現中可提供用於刪除某些約束的快捷方式。例如,要在Oracle表中刪除主鍵約束,可以使用下麵的命令:
ALTER TABLE EMPLOYEES DROP PRIMARY KEY;
一些實現中允許禁用約束。而不是從數據庫中永久刪除約束,您可能需要暫時禁用約束,以後再啟用它。
完整性約束:
完整性約束用於確保在關係數據庫中的準確性和一致性的數據。數據完整性是在關係數據庫中,通過參照完整性的概念進行處理。
有許多類型的完整性約束,在參照完整性(RI)中發揮作用。這些限製包括主鍵,外鍵,唯一約束和上麵提到的其他約束限製。