数据库约束是为了保证数据的完整性(正确性)而实现的一套机制
非空约束
主键约束(PK) primary key constraint 唯一且不为空
唯一约束 (UQ)unique constraint 唯一,允许为空,但只能出现一次
默认约束 (DF)default constraint 默认值
检查约束 (CK)check constraint 范围以及格式限制
外键约束 (FK)foreign key constraint 表关系
--手动添加约束(设计器)
-> 单击右键 -> 设计表
-> 主键
-> 唯一约束
-> 右键 -> 索引键 -> 添加 -> 常规 -> 唯一键
-> 命名“UQ_表名_字段名”
-> 检查约束
-> 右键 -> check约束 -> 添加 -> 表达式
命名“CK_表名_列名”
--T-SQL实现添加约束
<1>新建表时添加约束
id int primary key,--主键约束
name nvarchar(10) unique, --唯一约束
age int check(age>=0 and age<=100),--检查约束
jiondate datetime default(getdate()) --默认约束
Fid int foreign key references MainTable(Fid) --外键约束
<2>
-- 使用修改表结构方式实现
-> 修改表结构使用alter table
-> alter table 表名 add constraint 约束名 约束类型与条件
-> 主键约束:primary key(字段)
-> 唯一约束:unique(字段)
注意为空与空字符串
-> check约束:check(约束表达式)
-> 默认约束:default(值) for 字段名
--添加检查约束
alter table T_CreateConstraint2
add constraint
CK_CreateConstraint2_age
check
(
age>=0
and age<=100
)
--添加主键约束
alter table T_CreateConstraint2
add constraint
PK_CreateConstraint2_id
primary key(id)
--添加唯一约束
alter table T_CreateConstraint2
add constraint
UQ_CreateConstraint2_name
unique(name)
--添加默认约束
alter table T_CreateConstraint2
add constraint
DF_CreateConstraint2_joinDate
default (getdate()) for jionDate
--添加外键约束
alter table ForTabe1
add constraint
FK_ForTable1_MainTable1_Fid
foreign key(Fid) references MainTable1(Fid)
-- 添加多个约束(逗号隔开)
alter table 表名
add
constraint 约束名 约束类型与条件
… …
--删除约束
alter table 表名 drop constraint 约束名
可以删除多个约束,用,分隔开