数据库约束

主键约束 (PK)primary  key  constraint 唯一且不为空
唯一约束 (UQ)unique  constraint  唯一,允许为空,但只能出现一次
默认约束 (DF)default  constraint  默认值
检查约束 (CK)check  constraint 范围以及格式限制
外键约束 (FK)foreign key constraint 表关系
增加外键约束时,设置级联更新、级联删除:
[ ONDELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ONUPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
注:
当创建了主外键关系后,如果在外键表中有任何记录引用了主键表中的某条记录,则在主键表中不能删除该记录。同时主键表也不能删除。
demo:

--============手动增加约束==========

--手动删除一列(删除EmpAddress)

alter  table  Employees drop   column   EmpAddress

--手动增加一列(增加一列EmpAddr  varchar(1000))

alter    table  Employees add   AA   varchar(500), BB   int, CC   varchar(10)--增加多列

--手动修改一下EmpEmail的数据类型(varchar(200))

alter table  Employees alter  column  EmpAddr   varchar(1000)

--EmpId增加一个主键约束

alter  table  Employees add   constraint   PK_EmpId primary  key(EmpId)

--非空约束,EmpName增加一个非空约束

alter  table  Employees alter  column  EmpName varchar(50not  null

--EmpName增加一个唯一约束

alter  table  Employees add  constraint  UQ_EmpName unique (EmpName)

--为性别增加一个默认约束,默认为''

altert able  Employees add  constraint  DF_EmpGender default('')  for  EmpGender

--为年龄增加一个检查约束:年龄必须在-120岁之间,含岁与岁。

alter  table  Employees add  constraint  CK_EmpAge check (EmpAge>=0andEmpAge<=120)

--创建一个部门表,然后为Employee表增加一个DepId列。

alter  table  Employees add  DeptId  int

--增加外键约束

alter  table  Employees add  constraint  FK_DeptId_DepId foreign  key(DeptId)  references  Department(DepId)

--添加主键约束

alter  table Score

add  constraint  PK_Score   primary key(sId)

 

--添加唯一约束

alter  table student

add  constraint UQ_student  unique(sNo)

--添加默认约束

alter  table student

add  constraint  DF_student   default('')  for  sSex

--添加检查约束

alter  table student

add  constraint  CK_student  check (sAge>=18 and sAge<=100)

--添加外键约束(主键表Class外键表student

alter  table student

add  constraint  FK_student

foreign key (sClassId)  references  Class (cId) --外键student表中的sClassIdreferences引用主键表中的cid

--级联删除

--on delete cascade on update cascade

--删除约束

alter   table student

drop  constraint  FK_student

--用一条语句为表增加多个约束。

altertable Employees add

constraint  PK_Employees_EmpIdprimary key(EmpId),--增加主键约束

constraint  UQ_Employees_EmpName  unique(EmpName),--增加唯一约束

constraint  DF_Employees_EmpGender  default('')  for EmpGender,--默认约束

constraint  CK_Employees_EmpAge  check(EmpAge>=0and EmpAge<=120),

constraint  FK_Employees_Department_DepId   foreign key(DepId)  references  Department(DepId)

altertable Employees drop constraint

CK_Employees_EmpAge,

FK_Employees_DepId

====================================================================================================

通过使用级联引用完整性约束,您可以定义当用户试图删除或更新现有外键指向的键时,SQLServer 2005 执行的操作。

CREATE  TABLE 语句和 ALTER  TABLE 语句的 REFERENCES子句支持 ONDELETE 子句和 ONUPDATE 子句。还可以使用“外键关系”对话框定义级联操作:

[ ON  DELETE { NO ACTION |CASCADE | SET NULL | SET DEFAULT } ]

[ ON  UPDATE { NO ACTION |CASCADE | SET NULL | SET DEFAULT } ]

--删除原有的外键约束

alter  table Employees drop constraint FK_Employees_Department_DepId

--设置主外键关系的级联删除

alter  table Employees add constraint  FK_Employees_Department_DepId

foreign key(DepId)  references Department(DepId)

ondelete CASCADE --设置级联删除

onupdate cascade -- 设置级联更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值