SQL基礎知識V2——約束(語法)

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)以及上面提到的其餘約束。

批註

約束的種類有不少,經過約束咱們可讓進入數據庫的數據更加規範,雖然這樣作會很麻煩,有時候甚至還可能影響用戶體驗,可是仍是建議儘可能讓你的數據庫設計的更加規範,只有數據規範了,在以後的數據處理過程當中或數據查詢分析過程當中纔會更加高效。本節主要介紹語法部分,下一節會着重介紹各個約束的使用方法。

相關文章
相關標籤/搜索