约束
2016-03-27 17:39
225 查看
主键 (PRIMARY KDY)
主键是为了约束数据唯一性而建立的值,不能为空值。主键值可以是和业务,也可以和逻辑相关的。
像银行卡号,身份证号码等和业务相关属性的就是业务主键;反之就是逻辑主键了,像用IDENTITY属性建立的递增字段,全局标识符(GUID)。
定义主键。
唯一性约束(UNIQUE)
唯一性约束的功能和主键相似,不同是一张表可以定义多个,而且可以为空值。
外键 (FOREIGN KEY)
外键就是约束主表中某列的值必然和从表某列值一致,和主键不同外键的值不是唯一的,也可以为空,当然前提是从表中有这个值。
比如说一个顾客“有”多个订单,一个订单“属于”一个顾客。顾客和订单之间的关系就是一对多的关系了。
一张表可以存在多个外键。
创建约束时给它取一个名字是一个好习惯。
----增加约束
CREATE TABLE myT(id int not null
,MyT2ID int not null
,age int null
,SNO nvarchar(50) not null
,Name nvarchar(50) default 'celly'
,constraint primaryID primary key(id)
,constraint foreignName foreign key(MyT2ID) references myT2(id)
,constraint checkName check(age<15 and age<30)
,constraint uniqueName unique(SNO)
)
--增加约束
alter table myT3 add constraint PK_myT3ID primary key(id)
alter table myT3 add constraint foreignName foreign key(MyT2ID) references myT2(id)
alter table myT3 add constraint checkName check(age<15 and age<30)
alter table myT3 add constraint uniqueName unique(SNO)
--删除约束
alter table myT3 drop constraint primaryID
alter table myT3 drop constraint foreignName
主键是为了约束数据唯一性而建立的值,不能为空值。主键值可以是和业务,也可以和逻辑相关的。
像银行卡号,身份证号码等和业务相关属性的就是业务主键;反之就是逻辑主键了,像用IDENTITY属性建立的递增字段,全局标识符(GUID)。
定义主键。
唯一性约束(UNIQUE)
唯一性约束的功能和主键相似,不同是一张表可以定义多个,而且可以为空值。
外键 (FOREIGN KEY)
外键就是约束主表中某列的值必然和从表某列值一致,和主键不同外键的值不是唯一的,也可以为空,当然前提是从表中有这个值。
比如说一个顾客“有”多个订单,一个订单“属于”一个顾客。顾客和订单之间的关系就是一对多的关系了。
一张表可以存在多个外键。
创建约束时给它取一个名字是一个好习惯。
----增加约束
CREATE TABLE myT(id int not null
,MyT2ID int not null
,age int null
,SNO nvarchar(50) not null
,Name nvarchar(50) default 'celly'
,constraint primaryID primary key(id)
,constraint foreignName foreign key(MyT2ID) references myT2(id)
,constraint checkName check(age<15 and age<30)
,constraint uniqueName unique(SNO)
)
--增加约束
alter table myT3 add constraint PK_myT3ID primary key(id)
alter table myT3 add constraint foreignName foreign key(MyT2ID) references myT2(id)
alter table myT3 add constraint checkName check(age<15 and age<30)
alter table myT3 add constraint uniqueName unique(SNO)
--删除约束
alter table myT3 drop constraint primaryID
alter table myT3 drop constraint foreignName
相关文章推荐
- 泛型设计实现反向比较器
- 代码混淆详解
- 一些关于C++中static方法和static成员的个人认知
- lintcode:First Bad Version
- codeforces 351A A. Jeff and Rounding(★)
- 敏捷开发阅读笔记
- Xml编程---Dom4j解析工具
- java小练习:.根据输入的月份,判断该月份有多少天
- Calculator(后缀表达式)
- collection--set--treeSet
- springmvc调用流程
- 构建之法阅读笔记03
- 基础14_转义字符和特殊字符ASCII
- 《leetCode》:Majority Element II
- POJ 3280 Cheapest Palindrome(区间DP)
- 关于国内外CV领域牛人的博客链接
- c++上机作业-2
- 第四周学习进度
- >hibernate.cfg.xml的一些常用配置
- Html5全屏_IE