SQL Server数据库六大约束

一、数据完整性设计

  • 数据完整性就是确保数据库中数据的一致性和正确性
  • 数据完整性包括数据的完整性和参照的完整性

二、SQL Server数据完整性

  1. PRIMARY KEY约束
  2. FOREIGN KEY约束
  3. UNIQUE约束
  4. CHECK约束
  5. DEFAULT约束
  6. 允许空值

三、SQL Server六大约束

约束名称 主键约束(PRIMARY KEY) 唯一约束(UNIQUE) 外键约束(FOREIGN KEY) 检查约束(CHECK) 非空约束(NOT NULL) 默认值约束(DEFAULT)
定义/特征 在表中常有一列或多列的组合,其值能唯一标识表中的每一行。这样的一列或多列成为表的主键(Primary Key)。一个表只能有一个主键,而且主键约束中的列不能为空值。 UNIQUE约束用于确保表中的两个数据行在非主键中没有相同的列值。与PRIMARY KEY约束类似,UNIQUE约束也强制唯一性,但UNIQUE约束用于非主键的一列或多列组合,且一个表可以定义多个UNIQUE约束,另外UNIQUE约束可以用于定义多列组合。 外键(Foreign Key)是用于建立和加强两个表(主表与从表)的一列或多列数据之间的连接的。创建约束的顺序是先定义主表的主键,再对从表定义外键约束。 CHECK约束用于限制输入一列或多列的值的范围,通过逻辑表达式来判断数据的有效性。一个列的输入内容必须满足CHECK约束的条件,否则数据无法正常输入。 确定这个字段中的数据必须不能为空。 若在表中某列定义了DEFAULT约束,用户在插入新的数据行时,如果该列没有指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值(NULL)。
作用 确保主键所对应的列没有空值或没有重复的值。 确保在非主键列中不输入重复的值。 控制可以存储在外键中的数据和控制对主键表中数据的更改。 限制列中允许的取值以及多个列之间的关系。 该列是否允许为空值。 默认值约束是在一个表内针对某一个字段定义的, 仅对该字段有效。
针对某种完整性 实体完整性 实体完整性 参照完整性 域完整性、自定义完整性 域完整性 域完整性
鼠标设置方法 右键单击表,选择设计。选中要创建主键的列,然后单击上面的小钥匙。也可以右键需要创建主键的列,然后单击小钥匙。 右键单击要设置的列选择索引/键。然后单击添加按钮。选择需要设置的列,可以是一列也可以是多列的组合。关闭并保存设置。 右键单击需要设置外键的列(此时的表是作为从表在外键中出现),选择关系。接下来点击添加–>表和列规范。在主键表中选择主表和主表的主键列。设置完后保存即可。 右键单击要设置的列选择CHECK约束。然后单击添加按钮。选择需要设置的列。接下来点击添加–>表达式。设置相应的表达式。设置完后保存即可。 指定非空约束的列不能没有值,也就是说在插入记录时,对添加了非空约束的列一定要给值;在修改记录时,不能把非空列的值设置为NULL。 右键单击表,选择设计。选中需要设置默认值的标识列,在列属性中选择默认值或绑定,为其设置默认值。设置完后保存即可。
修改表ALTER TABLE设置方法 alter table 表名
add constraint 约束名 Primary key(字段名)
alter table 表名
add constraint 约束名 unique(字段名)
alter table 从表
add constraint 约束名 foreign key(字段名) references 外表名(字段名)
alter table 表名
add constraint 约束名 check(条件)
alter table 表名
alter column 字段名 类型 not null
alter table 表名
add constraint 约束名 default 值 for 字段名
创建表CREATE TABLE设置方法 uId int identity(1,1) primary key,–创建了一个列名为 uId的列,并设置了主键约束 uName nvarchar(8) not null unique,创建了一个列名为uName的列,并设置了唯一约束 学号nvarchar(2) NOT NULL CONSTRAINT FK _成绩表_STUDENT FOREIGN KEY REFERENCES STUDENT (学号) email varchar(50) check (email like ‘%@%’)) uSex nchar(1) not null check(uSex=‘男’ or uSex=‘女’) default(‘男’),–设置了非空和默认约束 uAge int not null check(uAge>0 and uAge<100) default(18),–设置了非空、检查、默认约束
验证方法 输入重复值或空值NULL时,计算机会显示错误提示 输入重复值时,计算机会显示错误提示 主表与子表会根据外键的设置产生级联、限制、忽略的关系 输入错误值时,计算机会显示错误提示 设置非空约束,输入空值时,计算机会显示错误提示 不输入信息时,会显示所设置的默认信息

四、参照完整性外键具体动作介绍

动作 命令参数 SQL Server Management Studio中的设置 主键引发修改主键值删除记录 外键的反应
限制 NO ACTION默认值参数(选项) 默认设置/无操作,不用改动 操作无法进行, 原因是有对应的外键存在 无操作,无任何反应
级联 CASCADE 层叠 操作可以正常进行 自动跟随主键完成修改或删除动作
取空值 SET NULL 设置空 操作可以正常进行 NULL
取默认值 SET DEFAULT 设置默认值 操作可以正常进行 自动填入默认值
发布了174 篇原创文章 · 获赞 76 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_44034384/article/details/105255207