鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ SQL 約束
SQL AND 和 OR 連接運(yùn)算符
SQL 刪除數(shù)據(jù)庫(kù)
SQL 使用序列
SQL CONCAT 函數(shù)
SQL 使用視圖
SQL SELECT 語(yǔ)句
SQL 別名
SQL MAX 函數(shù)
SQL 創(chuàng)建表
SQL NULL 值
SQL 數(shù)據(jù)類型
SQL RAND 函數(shù)
SQL 臨時(shí)表
SQL INSERT 語(yǔ)句
SQL ALTER TABLE 命令
SQL 關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)
SQL SUM 函數(shù)
SQL 子查詢
SQL UPDATE 語(yǔ)句
SQL 表達(dá)式
SQL 操作符
SQL ORDER BY 子句
SQL WHERE 子句
SQL 對(duì)結(jié)果進(jìn)行排序
SQL 注入
SQL AVG 函數(shù)
SQL 選擇數(shù)據(jù)庫(kù),USE 語(yǔ)句
SQL 克隆數(shù)據(jù)表
SQL COUNT 函數(shù)
SQL 語(yǔ)法
SQL DELETE 語(yǔ)句
SQL 約束
SQL 刪除表
SQL TOP、LIMIT 和 ROWNUM 子句
SQL 日期函數(shù)
SQL TRUNCATE TABLE 命令
SQL DISTINCT 關(guān)鍵字
SQL 處理重復(fù)數(shù)據(jù)
SQL 使用連接
SQL 索引
SQL 事務(wù)
SQL GROUP BY 子句
SQL HAVING 子句
SQL MIN 函數(shù)
SQL 概覽
SQL SQRT 函數(shù)
SQL LIKE 子句
SQL 通配符
SQL UNION 子句
SQL 數(shù)據(jù)庫(kù)
SQL 創(chuàng)建數(shù)據(jù)庫(kù)

SQL 約束

約束是作用于數(shù)據(jù)表中列上的規(guī)則,用于限制表中數(shù)據(jù)的類型。約束的存在保證了數(shù)據(jù)庫(kù)中數(shù)據(jù)的精確性和可靠性。

約束有列級(jí)和表級(jí)之分,列級(jí)約束作用于單一的列,而表級(jí)約束作用于整張數(shù)據(jù)表。

下面是 SQL 中常用的約束,這些約束雖然已經(jīng)在關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)一章中討論過(guò)了,但是仍然值得在這里回顧一遍。

  • NOT NULL 約束:保證列中數(shù)據(jù)不能有 NULL 值
  • DEFAULT 約束:提供該列數(shù)據(jù)未指定時(shí)所采用的默認(rèn)值
  • UNIQUE 約束:保證列中的所有數(shù)據(jù)各不相同
  • 主鍵約束:唯一標(biāo)識(shí)數(shù)據(jù)表中的行/記錄
  • 外鍵約束:唯一標(biāo)識(shí)其他表中的一條行/記錄
  • CHECK 約束:此約束保證列中的所有值滿足某一條件
  • 索引:用于在數(shù)據(jù)庫(kù)中快速創(chuàng)建或檢索數(shù)據(jù)

約束可以在使用 CREATE TABLE 創(chuàng)建表的時(shí)候指定,也可以在表創(chuàng)建之后由 ALTER TABLE 設(shè)置。

刪除約束

任何現(xiàn)有約束都可以通過(guò)在 ALTER TABLE 命令中指定 DROP CONSTRAINT 選項(xiàng)的方法刪除掉。

例如,要去除 EMPLOYEES 表中的主鍵約束,可以使用下述命令:

    ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;

一些數(shù)據(jù)庫(kù)實(shí)現(xiàn)可能提供了刪除特定約束的快捷方法。例如,要在 Oracle 中刪除一張表的主鍵約束,可以使用如下命令:

    ALTER TABLE EMPLOYEES DROP PRIMARY KEY;

某些數(shù)據(jù)庫(kù)實(shí)現(xiàn)允許禁用約束。這樣與其從數(shù)據(jù)庫(kù)中永久刪除約束,你可以只是臨時(shí)禁用掉它,過(guò)一段時(shí)間后再重新啟用。

完整性約束

完整性約束用于保證關(guān)系型數(shù)據(jù)庫(kù)中數(shù)據(jù)的精確性和一致性。對(duì)于關(guān)系型數(shù)據(jù)庫(kù)來(lái)說(shuō),數(shù)據(jù)完整性由參照完整性(referential integrity,RI)來(lái)保證。

有很多種約束可以起到參照完整性的作用,這些約束包括主鍵約束(Primary Key)、外鍵約束(Foreign Key)、唯一性約束(Unique Constraint)以及上面提到的其他約束。