一 完整性包括:
1. 實體完整性
數據行不能存在重複,否則爲冗餘數據
2. 域完整性
對輸入到特定列的數值的範圍限制,就是安全性!
3. 引用完整性(即參照完整性Reference)
要求子表中的相關項必須在主表中存在
如果建立了主表和子表的關係,則: 子表中的相關項目的數據,在主表中必須存在;
主表中相關項的數據更改了,則子表對應的數據項也應當隨之更改;
在刪除子表之前,不能夠刪除主表;
刪除主表中的數據必須先刪除從表的數據;
4. 自定義完整性
二 約束:
約束的定義:確保表中數據的完整型
一般的約束類型:
主鍵約束(Primary Key Constraint):要求主鍵列數據唯一,並且不允許爲空
默認約束(Default Constraint):某列的默認值,如國家我們默認的是“中國”
檢查約束(Check Constraint):某列取值範圍限制、格式限制等,如有關年齡的約束
唯一約束(Unique Constraint):要求該列唯一,允許爲空,但只能出現一個空值。
外鍵約束(Foreign Key Constraint):用於兩表間建立關係,需要指定引用主表的那列
如下是對約束的語法使用:
1. alter table student add constraint PK_sid primary key(sid) 對student表sid字段增加主鍵約束
2. alter table student add constraint DF_sex default("男") for sex 對student表中的sex字段增加默認約束爲(男)
3. alter table student add constraint CK_age check(age between 30 and 50);對錶中的年齡字段限制在30到50之間
4. alter table student add constraint UNI_studentid unique(studentid) 每個人的學號只有一個,避免出現相同
5. alter table student add constraint FK_cno foreign key(cno) reference info(cno)參照信息表中的cno字段
刪除約束
alter table student drop constraint PK_sid primary;