SQL_Server 约束使用规范与总结

约束的作用:主要用来保证数据的正确性和完整性。
SQL Server的主要约束有:主键约束(primary key constraint)、唯一性约束(unique constraint)、检查性约束(check constraint)、默认约束(default constraint)和外键约束(foreign key constraint)。
①     主键约束
主键约束指的是我们可以在表中定义一个字段作为表的主要关键字,主键是表中记录的唯一性标识,每个表中只允许一个primary key 约束,并且作为primary key约束的字段不允许空值。如果一个表中有着多个列作为主键约束,则一列中的值可以是重复的,但是被主键约束列中的组合值一定要是唯一存在的。
操作图:

 ②     唯一性约束
用唯一性约束防止重复数据
唯一性约束(Unique)可以确保数据表在除主键列中字段的唯一性。例如在员工信息表中需要录入所有员工的手机号码,然而并不可能有两位员工的手机号码是相同的,此时我们可以对手机号码进行唯一性约束的设置。使用唯一性约束要注意几点要素:
A.    Unique约束是允许空值的。
B.    Unique约束可以在一个数据表中设立多个。
C.    使用unique约束的字段会建立唯一性索引。
D.    在默认情况下unique约束创建的是非聚集索引。
操作图:

 

 

 ③     检查性约束
检查性约束是对录入到数据表中的数据所设置的检查条件,以限制输入值,用于保证数据库的完整性。通过逻辑表达式来对字段的值进行输入内容的限定,例如,在员工表中定义了一个age字段,我们需要把这个字段所录入的内容限定在一个合理及合法的范围内,比如18到70岁之间,我们可以通过逻辑表达式age > 18 and age <= 70来进行判断,逻辑表达式会返回true或false两个值,用来表示符合约束条件和不符合约束条件两种情况。使用检查约束要注意几点:
A.    在对列进行约束限制时只能与字段有关;在对表进行约束限定时只能与限制表中的字段有关。
B.    在数据表中可以对多个列进行检查约束的设置。
C.    在使用create table 时只能对每个字段设置一个检查约束。
D.    在表中对多个字段进行的检查约束则为表级约束。
E.    检查约束将在数据表进行insert和update操作时对数据进行验证。
F.    设置检查约束的时候不能包含子查询。
操作图:

 

注意:包括隐式或显示数据类型转换的约束可能会导致某些数据操作失败。例如:为表定义的作为分区切换的源的此类约束可能会导致alter table...switch操作失败。在约束定义中避免数据类型转换。
④     默认约束
默认约束是指当某一字段没有提供数据内容时,系统自动给该字段赋予一个设定好的值。当必须向表中加载一行数据单不知道某一字段值的值,或该值不存在时可以使用默认约束。默认约束可以使用常量、函数、空值作为默认值。使用默认约束时需要注意以下几点:
A.    每个字段只能有一个默认约束。
B.    如果默认约束设置的值大于字段所允许的长度,则截取到字段允许长度。
C.    不能加入到带有identity属性或timestamp的字段上。
D.    如果字段的数据类型为用户自定义类型,而且已有默认值绑定在此数据类型上,则不允许再次使用默认值。

⑤     外键约束
外键约束是在两个表中的数据之间建立和加强链接的一列或多列的组合,可控制在外键表中存储的数据。在外键引用中,当包含一个表的主键值的一个或多个列被另一个表中的一个或多个列引用时,就在这两个表之间创建了链接。使用外键约束注意以下几点:
A.    外键约束是对字段参照完整性的设置
B.    外键约束不支持自动创建索引,需要手动建立
C.    表中最多可以使用31个外键约束
D.    临时表中不能建立外键约束
E.    主键和外键的数据类型必须严格匹配

 

猜你喜欢

转载自blog.csdn.net/CQL_K21/article/details/88872190