1、非空约束(Not Null Constraint)
这个可能大家都了解,就是我们在添加那个表 userinfo,在id、name后面都添加了not null,就是有些列不能把它设为空,相信大家都理解,我就说下我在一个英文资料看到的一段英文:The not null specification prohibits the insertion
of a null value for this attribute.Any database modifucation that would cause a null to be inserted in an attribute declared to be not null generates an error diagnostic.(大家就得自己翻译了)
2、唯一约束(Unique Constraint)
一个唯一约束并不包括一个NULL值。直接在字段定义后加入UNIQUE即可定义该唯一约束。
1) 一个表只能创建一个主键约束,但一个表可以根据需要对不同的列创建若干unique约束
2)主键字段不允许为null ,unique允许为空
3)一般创建主键约束时,系统自动产生簇索引,unique约束自动产非簇索引
3、检查约束(The Check Clause)
通过在定义数据库表里,在字段级或者是在表级加入的检查约束,使其满足特定的要求。
我来举一个例子
create table student (
name varchar(15) not null,
student_id varchar(15),
degree_level varchar(15),
primary key(student_id),
check(degree_level in('Bachelors','Masters','Doctorate')))
Here ,we use the check clause to simulate an enumerated type by specifying that degree_level must to be one of 'Bachelors','Masters','Doctorate'
4、主键约束(Primary Key Constraint)
其实主键约束就是一张表只能建立一个主键约束,其实就是唯一约束+非空约束。大家通过上课讨论那么多关于“依赖”的事情,估计大家都能理解了
5、外健约束( Foreign Key Constraint)
Foreign Key Constraint主要是确保同一个表或者不同表之间的引用完整性,所以必须引用一个PRIMARY KEY或者UNIQUE约束,用户必须在应用表上具有REFERENCES权限;一个表中最多可以有31个外部键约束; 在临时表中,不能使用外部键约束; 主键和外部键的数据类型必须严格匹配 。
语法: ALTER TABLE 表名 ADD CONSTRAINT约束名约束类型 具体的约束声明约束名的取名规则推荐采用:约束类型_约束列,当然你也可以不这么命名,这样单纯是比较方便
如:主键(Primary Key)约束:PK_UserId
唯一(Unique key)约束: UQ_UserCardId
默认(Default Key)约束 DF_UserPasswd
检查(Check Key)约束 CK_Gender
外键(Foreign Key)约束: FK_SortId
--以上加棕色段是我定义表中的列名称
打个比方:add constraint PK_UserId PRIMARY KEY (UserId)
--PK_UserId 是自定义约束名 , PRIMARY KEY 是约束类型, (UserId)是具体的约束声明
数据库的三种完整性约束:1、实体完整性,对关系中的记录唯一性,即主键的约束;
2、参照完整性,对关系数据库中建立关联关系的数据表间数据参照引用的约束,即对外键的约束;
3、用户定义的完整性,针对某一具体关系数据库的约束条件。
参照完整性外码:关系R中,有一个或一组属性,其不是主码,并且该属性和另一关系S中的主码相对应。则该属性为R的外码。
参照完整性规定:外码或者取空值,或者等于另一关系中的主码值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)