SQL完整性約束

2021-07-24 09:43:53 字數 974 閱讀 8452

完整性約束保證授權使用者對資料庫所做的修改不會破壞資料的一致性。

not null宣告禁止在該屬性上插入空值。任何可能導致向乙個宣告為not null的屬性插入空值的資料都會產生錯誤診斷資訊。

unique (aj

1 , aj

2 ,…, aj

m )

unique宣告指出aj

1 , aj

2 ,…, aj

m 形成了乙個候選碼,即在關係中沒有兩個元組能在所有列出的屬性上取值相同。

值得注意的是,候選碼屬性可以為null, 除非它們已被顯示地宣告為not null。

當應用於關係宣告時,check(p)子句指定乙個謂詞p, 關係中的每個元組都必須滿足謂詞p。

根據sql標準,check子句中的謂詞可以是包含子查詢在內的任意謂詞。

我們常常希望保證在乙個關係中給定屬性集上的取值也在另一關係的特定屬性集的取值中出現,這種情況被稱為參照完整性(referential integrity)。

令關係r

1 和r2

的屬性集分別為r1

和r2 ,主碼分別為k1

和k2 。如果要求對r2

中的任意元組t2

,均存在r1

中的元組t1

使得t1

.k1 =t2

.α,我們稱r2

的子集α 為參照關係r1

中k1 的外碼(foreign key)。

技術註解:乙個關係模式r1

可能在它的屬性中包含另乙個關係模式r2

的主碼。這個屬性在r1

上稱作參照r2

外碼(foreign key)。

SQL完整性約束

1.資料定義語句 ddl create alter drop truncate 表結構 2.資料操縱語句 dml insert delete update select 3.資料控制語句 dcl 授權 grant 收回許可權 revoke 4.失誤控制語句 tcl 開啟事務 begin transa...

完整性約束

create table student tb id int notnull 非空約束 資料不允許為空 name varchar 255 null 顯式指定允許為空 新增非空約束 alter table 表名 modify column 屬性名 屬性型別 not null alter table s...

完整性約束

資料庫的完整性是指保護資料庫的有效性和正確性,防止資料庫中存在不符合語義的 不正確的資料。sql語言提供了相應的完整性約束機制,以確保將正確的資料儲存到資料庫中。完整性約束的型別 唯一約束 unique 用於表中的非主鍵字段,確保字段不會輸入重複的值,為其創造唯一索引 唯一鍵的值可以是null,但只...