W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
SQL約束用于指定表中數(shù)據(jù)的規(guī)則。
約束是作用于數(shù)據(jù)表中列上的規(guī)則,用于限制表中數(shù)據(jù)的類(lèi)型。約束的存在保證了數(shù)據(jù)庫(kù)中數(shù)據(jù)的精確性和可靠性。
約束有列級(jí)和表級(jí)之分,列級(jí)約束作用于單一的列,而表級(jí)約束作用于整張數(shù)據(jù)表。
下面是 SQL 中常用的約束,這些約束雖然已經(jīng)在關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)一章中討論過(guò)了,但是仍然值得在這里回顧一遍。
約束可以在創(chuàng)建表時(shí)規(guī)定(通過(guò) CREATE TABLE 語(yǔ)句),或者在表創(chuàng)建之后規(guī)定(通過(guò) ALTER TABLE 語(yǔ)句)。
當(dāng)使用CREATE TABLE語(yǔ)句創(chuàng)建表時(shí),或者在使用ALTER TABLE語(yǔ)句創(chuàng)建表之后,可以指定約束。
語(yǔ)法
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
....
);
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,
....
);
任何現(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)以及上面提到的其他約束。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: