八、什么是约束

八、什么是约束

        • 主键约束
        • 唯一性约束
        • 检查约束
        • 默认值约束
        • 外键约束

约束方法

唯一约束、主键约束、标识列

参数完整性:一个表的外键可以为空值。如果不为空值,则每一个外键值必须必须等于相关联的另外那张表中主键的某个值。

八、什么是约束_第1张图片

八、什么是约束_第2张图片

八、什么是约束_第3张图片

八、什么是约束_第4张图片

八、什么是约束_第5张图片

外键约束:

用户定义完整性:它是设计者为了保证表中某些行或者列的数据满足具体应用需求而自定义的一些规则。

检查约束、存储过程、触发器

SQL Server创建表的过程就是规定数据列的属性过程,同时也是实时数据完整性约束的过程。

创建数据表需要确定表的列名、数据类型、是否允许为空,还需要确定主键、必要的默认值、标识列和检查约束。

表示用来存储数据和操作数据的逻辑结构,用来组织和存储数据,关系数据库中的所有数据都表现为表的形式,数据表由行和列的组成,对数据库的操作,基本上就是对数据表的操作。

SQL Server中的数据表分为临时表的和永久表,临时表存储在tempdb系统数据库中,当不再使用或退出SQL Server时,临时表会自动删除;而永久表一旦创建之后,除非用户删除,否则将一直存放在数据库文件中。SQL Server 2016中有两种创建数据表的方法:一种是通过对象资源浏览器创建,另一种是通过Transact-SQL语句创建。

修改表的约束

约束是用来保证数据库完整性的一种方法,设计表时,需要定义列的有效值并通过限制字段中数据、记录中数据和表之间的数据来保证数据的完整性,约束是独立于表结构的,它作为数据库定义的一部分在创建表时声明,可以通过对象资源管理器或者Alter table语句添加和删除。

SQL Server 2016 中有五种约束,分别是:主键约束(Primary key constraint)唯一性约束(unique constraint)检查约束(check constraint)默认约束(default constraint)外键约束(foreign key constraint)

主键约束

主键约束(Primary key constraint)可以在表中定义一个主键值,它可以唯一确定表中每一条记录,也是重要的一种约束。每个表中只能有一个Primary Key约束,并且Primary Key约束的列不能接受空值。如果主键约束定义在不止一列上,则一列中的值可以重复,但主键约束定义中,所有列的组合值必须唯一。

唯一性约束

唯一性约束(Unique)确保在非主键列中不输入重复的值。用于指定一个或者多个列的组合值具有唯一性,以防止在列中输入重复的值。可以对一个表定义多个unique约束,但只能定义一个primary key约束。unique约束允许NULL值,但是当和参与unique约束的任何值一起使用时,每列 只允许一个空值。

因此,当表中已经有一个主键时,就可以使用唯一性约束。当使用唯一性约束时,需要考虑一下几个因素:

  1. 使用唯一性约束的字段允许为空值
  2. 一个表可以允许有多个唯一约束
  3. 唯一性约束用于强制在指定字段上创建一个唯一性索引。
  4. 默认情况下,创建的索引类型为非聚集索引
检查约束

八、什么是约束_第6张图片

检查约束对输入列或者整个表中的设置检查条件,以限制输入值,保证数据的完整性,检查约束通过数据的逻辑表达式确定有效值。如对各科分数的约束,可以定义一个check约束条件,将各科分数限制在有效范围之内。

在检查性约束中,要考虑以下几点:

  1. 一个列级检查约束只能与限制的表中字段有关
  2. 一个表中可以定义多个检查约束
  3. 每个create table语句中的每个字段只能定义一个检查约束
  4. 在多个字段定义检查约束,则必须将检查约束定义为表级约束
  5. 当执行Insert语句或者update语句时,检查约束将验证数据
  6. 检查约束不能抱不能包含子查询
默认值约束

默认约束在指定插入操作中如果没有提供输入值时,系统自动指定插入值,即使该值是null。当必须向表中加载一行数据但不知道某一列的值,或该值尚不存在,此时可以使用默认值约束。默认值约束可以包括常量、函数、不带变元的内建函数或者空值。使用默认约束应该注意以下几点:

  1. 每个字段只能定义一个默认约束
  2. 如果定义的默认值长于其对应字段的允许长度,则输入到表中的默认值将被截断
  3. 不能加入带有IDENTITY属性或者数据类型为timestamp(时间戳)的字段上
  4. 如果字段定义为用户定义的数据类型,而且有一个默认绑定到这个数据类型上,则不允许该字段有默认约束。
外键约束

外键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。定义时,该约束参考同一个表或者另一个表中主键约束字段,而且外键表中的字段数目和每个字段指定的数据类型都必须和peferences表中的字段相匹配。当使用外键约束时,应考虑以下几个因素:

  1. 外键约束提供了字段参照完整性
  2. 外键从句中中的字段数目和每个字段指定的数据类型都必须和peferences从句中的字段相匹配
  3. 外键约束不能自动创建索引,需要用户手动创建
  4. 用户想要修改外键约束的数据,必须只使用peferences从句,不能使用外键自居
  5. 一个表中最多可以有31外键约束
  6. 在临时表中,不能使用外键约束
  7. 主键和外键的数据类型必须严格匹配

添加约束

分在资源管理器里添加和利用T-SQL语句添加

删除约束

分在资源管理器里添加和利用T-SQL语句删除

你可能感兴趣的:(SQL,Server,数据库,sqlite,sql,sqlserver)