MSSql Server基础学习系列———数据约束

数据约束在数据库中广泛存在

目的:保证数据库的完整性 说白了就是保证数据库中的数据是正确的,但是也带了坏处,那就是性能的下降

--主键约束(PK)
--主键值唯一,并且不能为空
--sql脚本语言
alter table dbo.NewCourse add constraint PK_NewCourse primary key(Cid)

--唯一约束(UQ)
--所在列的值不能重复,但是可以为空
--界面方式
--表右击->设计->选择某列->索引、键->选择唯一键
--sql脚本语言方式
alter table dbo.NewCourse1
add constraint UQ_NewCourse1_Cperiod unique(Cperiod)
--适用范围
--手机号、qq号注册的时候添加唯一约束

--默认值约束(DF)
--为某些列添加默认值,在数据添加的时候不为这个列赋值也能添加数据
--界面方式
--表右击->设计->选择某列->默认值的绑定
--sql脚本语言方式
alter table dbo.NewCourse1
add constraint DK_NewCourse1_Cname default ('123') for Cname

--检查约束(CK)
--界面方式
--表右击->设计->选择某列->右击->check约束->编写约束表达式
--sql脚本形式
--向数据库中插入数据的时候就会检查对于该表所添加的所有约束
--如果插入的数据满足所有的约束条件,则这条数据插入成功,否则失败
alter table dbo.NewCourse
add constraint CK_NewCourse_Cperiod check(Cperiod<=5)

--外键约束(FK)
--目的:解决数据冗余,保证数据库的完整性(两个表中存在相同的字段,但是对应的内容不全相同,不知道那个是正确的)
--界面方式
--在外键表上右击——>设计->关系添加关系
--sql脚本方式
alter table dbo.NewCourse add constraint FK_newCourse_Uid foreign key(Uid)
references Student(Uid) on update no action

--只是添加外键,没有添加insert 和update规范的话,进行delete和update操作时默认的是no action
--在添加外键约束的时候相比前面几种约束多了一种insert和update规范
--其中有不操作和级联操作等选项
--添加数据时,先添加主键表数据,后添加外键表数据
--删除数据时,必须是先删除外键表数据,后删除主键表数据

--批量添加约束
select * from Teacher
alter table Teacher Add 
	constraint DE_Teacher_tsex default(N'男') for tsex,
	constraint CK_Teacher_tsex Check(tsex=N'男' or tsex=N'女'
	)
	
--批量删除约束
alter table Teacher drop 
	constraint CK_Teacher_tsex,
	constraint DE_Teacher_tsex


你可能感兴趣的:(MSSQL,Server基础学习系列,数据约束)