SQL專欄數據庫
SQL數據庫基礎知識彙總數據庫設計
SQL數據庫高級知識彙總ide
約束的做用設計
約束是做用於數據表中列上的規則,用於限制表中數據的類型。約束的存在保證了數據庫中數據的精確性和可靠性。索引
約束有列級和表級之分,列級約束做用於單一的列,而表級約束做用於整張數據表。it
下面是 SQL 中經常使用的約束,這些約束雖然已經在關係型數據庫管理系統一章中討論過了,可是仍然值得在這裏回顧一遍。table
NOT NULL 約束:保證列中數據不能有 NULL 值class
DEFAULT 約束:提供該列數據未指定時所採用的默認值基礎
UNIQUE 約束:保證列中的全部數據各不相同用戶體驗
主鍵約束:惟一標識數據表中的行/記錄
外鍵約束:惟一標識其餘表中的一條行/記錄
CHECK 約束:此約束保證列中的全部值知足某一條件
約束能夠在建立表時規定(經過 CREATE TABLE 語句),或者在表建立以後規定(經過 ALTER TABLE 語句)。
建立約束
當使用CREATE TABLE語句建立表時,或者在使用ALTER TABLE語句建立表以後,能夠指定約束。
語法
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
)
刪除約束
任何現有約束均可以經過在 ALTER TABLE 命令中指定 DROP CONSTRAINT 選項的方法刪除掉。
例如,要去除 EMPLOYEES 表中的主鍵約束,能夠使用下述命令:
ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;
一些數據庫實現可能提供了刪除特定約束的快捷方法。例如,要在 Oracle 中刪除一張表的主鍵約束,能夠使用以下命令:
ALTER TABLE EMPLOYEES DROP PRIMARY KEY;
某些數據庫實現容許禁用約束。這樣與其從數據庫中永久刪除約束,你能夠只是臨時禁用掉它,過一段時間後再從新啓用。
完整性約束
完整性約束用於保證關係型數據庫中數據的精確性和一致性。對於關係型數據庫來講,數據完整性由參照完整性(referential integrity,RI)來保證。
有不少種約束能夠起到參照完整性的做用,這些約束包括主鍵約束(Primary Key)、外鍵約束(Foreign Key)、惟一性約束(Unique Constraint)以及上面提到的其餘約束。
批註
約束的種類有不少,經過約束咱們可讓進入數據庫的數據更加規範,雖然這樣作會很麻煩,有時候甚至還可能影響用戶體驗,可是仍是建議儘可能讓你的數據庫設計的更加規範,只有數據規範了,在以後的數據處理過程當中或數據查詢分析過程當中纔會更加高效。本節主要介紹語法部分,下一節會着重介紹各個約束的使用方法。