實體完整性:實體就是指一條記錄。這種完整性就是為了保證每一條記錄不是重覆記錄。是有意義的
– 主鍵:非空和唯一.乙個表只有乙個主鍵,但是乙個主鍵可以是由多個字段組成的 組合鍵
– 標識列:系統自動生成,永遠不重複
– 唯一鍵:唯一,但是可以為null,只能null一次
域完整性:域就是指字段,它是為了保證欄位的值是準和有效,合理值
– 型別 是否null,預設值,check約束,關係
自定義完整性:
– check約束 , 儲存過程 觸發器
引用完整性:乙個表的某個欄位的值是引用自另外乙個表的某個欄位的值。引用的表就是外來鍵表,被引用的表就是主鍵表
– 1.建立引用的字段型別必須一致
– 2.建立引用的字段的意義一樣
– 3.建立主外來鍵關係的時候選擇 外來鍵表 去建立主外來鍵關係
– 4.建立主外來鍵關係的字段在主表中必須是主鍵或者唯一鍵
– 5.對於操作的影響 :
– 1.在新增資料時,先新增主鍵表再新增外來鍵表資料
– 2.在刪除的時候先外鍵表資料再刪除主鍵表資料
– 級聯的操作:不建議使用:會破壞資料完整性
– 不執行任何操作:該報錯就報錯,該刪除就刪除
– 級聯:刪除主表記錄,從表引用該值的記錄也被刪除
– 設定null:刪除主表記錄,從表對應的字段值設定為null,前提是可以為null
– 設定為default:刪除主表記錄,從表對應的字段值設定為default,前提是可以為default
主鍵約束(pk primary key) 唯一鍵約束(uq unique) 外來鍵約束(fk foreign key) 預設值約束(df default) check約束(ck check)語法:alter table 表名
add constraint 字首_約束名稱 約束型別 約束說明(字段 關係表示式 值)
use school
ifexists(select * from sysobjects where
name='pk_classes_classid')
alter
table classes drop
constraint pk_classes_classid
alter
table classes
addconstraint pk_classes_classid primary key(classid)
--為id新增主鍵
alter
table teacher
addconstraint pk_teacher_id primary key(id)
--為name新增唯一鍵
alter
table teacher
addconstraint uq_teacher_name unique(name)
--同時建立salary的預設約束和age的check約束
alter
table teacher
addconstraint df_teacher_salary default(5000) for salary,
constraint ck_teacher_age check(age>0
and age<=100)
--為teacher表的classid欄位建立主外來鍵
ifexists(select * from sysobjects where
name='fk_teacher_classes_classid')
alter
table teacher drop
constraint fk_teacher_classes_classid
alter
table teacher
with
nocheck
--不檢查現有資料
addconstraint fk_teacher_classes_classid foreign key(classid) references classes(classid)
--on delete set default 級聯操作
--不執行任何操作:該報錯就報錯,該刪除就刪除 --no action --預設選擇
--級聯:刪除主表記錄,從表引用該值的記錄也被刪除 --cascade
--設定null:刪除主表記錄,從表對應的字段值設定為null,前提是可以為null --set null
--設定為default:刪除主表記錄,從表對應的字段值設定為default,前提是可以為default --set default
資料完整性約束
資料完整性約束定義 是指資料的正確性和相容性,為了防止資料庫中存在不符合語義的資料,防止資料庫中存在不正確的資料。在關係型模型中提供了三種規則 實體完整性,參照完整性,和使用者定義完整性。實體完整性規則 實體是乙個資料物件,是指客觀存在並可以相互區分的事務,如乙個學生或乙個職員。實體完整性規則是指關...
資料完整性約束
資料完整性約束的概念 在表中定義完整性約束是作為資料定義的一部分,定義了完整性約束,資料庫會隨時檢測處於更新狀態的資料庫內容是否符合相關的完整性約束,保證資料的正確性與一致性。完整性約束既能有效地防止對資料庫的意外破壞和非法訪問,提高完整性檢測的效率,還能減輕資料庫程式設計人員的工作負擔。常用的約束...
完整性約束
create table student tb id int notnull 非空約束 資料不允許為空 name varchar 255 null 顯式指定允許為空 新增非空約束 alter table 表名 modify column 屬性名 屬性型別 not null alter table s...