张磊(Avraber)

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数据库约束是为了保证数据的完整性(正确性)而实现的一套机制
非空约束
主键约束(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 约束名
可以删除多个约束,用,分隔开

posted on 2012-07-12 18:41  张磊(Avraber)  阅读(349)  评论(0编辑  收藏  举报