實體完整性:主鍵約束、唯一鍵約束
域完整性:預設值約束、檢查約束、非空
參照(引用)完整性:外來鍵約束
語法
create table 資料表名
(列名1 資料型別1 [constraint 約束名1][約束1]
列名2 資料型別2 [constraint 約束名2][約束2]
……列名n 資料型別n [constraint 約束名n][約束n][,]
[constraint 約束名n+1][約束n+1][,] --表級約束……)
(1)列級約束:在表的列名之後直接定義的約束,只約束這一列的資料
(2)表級約束:在表定義的所有列之後,單獨一行**定義的約束,這個約束可以只約束乙個列,
也可以約束多個列。同時約束多個列的必須是表級約束。
(3)注意:constraint 約束名:要求在乙個資料庫裡面,約束名稱必須唯一:如果不指定,則系統預設指定。
(4)用表級約束新增主鍵時,宣告列時要提前宣告非空 (not null),不然要報錯
# 命名格式通常可以採用:表名_約束名_序號
**例:定義學生表,學號為主鍵,性別預設為女,只能取值男或女,**號碼唯一。
create table tbstudent
(sno char(10) constraint stu_pk_01 primary key,
sname varchar(8) not null,
*** char(2) default('女') check(***='男' or ***='女'),
birthday datetime,
class varchar(20),
telephone char(20) unique)go
向學生表裡新增值
insert into tbstudent(sno,sname,***,birthday,class,telephone)
values('1000000001','張三丰','男','1992-1-1','計應1031','10001')
insert into tbstudent(sno,sname,***,birthday,class,telephone)
values('1000000003','公孫止','田','1992-1-1','計應1031','10003')--出錯:***:田:不符合檢查約束
insert into tbstudent(sno,sname,***,birthday,class,telephone)
values('1000000004','楊過','男','1989-11-1','計應1031','10002')--出錯:telephone:10002:不符合唯一約束
go例:定義學生表,學號為主鍵,性別預設為女,只能取值男或女,**號碼唯一。
create table tbstudent
(sno char(10) not null,--非空很重要
sname varchar(8) not null,
*** char(2) default('女') ,
birthday datetime,
class varchar(20),
telephone char(20),
--表級約束形式定義相關約束
constraint stu_pk_01 primary key(sno),--主鍵約束:
check(***='男' or ***='女'),
constraint stu_uq_01 unique(telephone)
)go
語法alter table 資料表
add [constraint 約束名] 約束(列名1,列名2),
[constraint 約束名] 約束(列名1,列名2)
**例:在課程表上課程編號上定義主鍵約束
alter table tbcourse
add constraint course_pk_01 primary key(cno)
go
資料完整性約束
實體完整性 實體就是指一條記錄。這種完整性就是為了保證每一條記錄不是重覆記錄。是有意義的 主鍵 非空和唯一.乙個表只有乙個主鍵,但是乙個主鍵可以是由多個字段組成的 組合鍵 標識列 系統自動生成,永遠不重複 唯一鍵 唯一,但是可以為null,只能null一次 域完整性 域就是指字段,它是為了保證欄位的...
資料完整性約束
資料完整性約束定義 是指資料的正確性和相容性,為了防止資料庫中存在不符合語義的資料,防止資料庫中存在不正確的資料。在關係型模型中提供了三種規則 實體完整性,參照完整性,和使用者定義完整性。實體完整性規則 實體是乙個資料物件,是指客觀存在並可以相互區分的事務,如乙個學生或乙個職員。實體完整性規則是指關...
資料完整性約束
資料完整性約束的概念 在表中定義完整性約束是作為資料定義的一部分,定義了完整性約束,資料庫會隨時檢測處於更新狀態的資料庫內容是否符合相關的完整性約束,保證資料的正確性與一致性。完整性約束既能有效地防止對資料庫的意外破壞和非法訪問,提高完整性檢測的效率,還能減輕資料庫程式設計人員的工作負擔。常用的約束...