SQL Server实用简明教程(第二版) 作者 ch14.pptVIP

  • 3
  • 0
  • 约3.37千字
  • 约 21页
  • 2015-12-13 发布于广东
  • 举报

SQL Server实用简明教程(第二版) 作者 ch14.ppt

第14章 数据完整性 教学目标 在Microsoft SQL Server系统中,包括了一系列的数据完整性方法,这些方法为用户提供了方便地实现数据完整性的机制。这些方法包括主键约束、惟一性约束、外键约束、缺省约束、检查约束以及缺省对象和规则对象。本章将讲述Microsoft SQL Server系统的数据完整性方法。 教学重点 了解数据完整性的概念 了解数据完整性的类型 掌握各种约束的定义和管理技术 掌握缺省对象管理技术 掌握规则对象管理技术 掌握如何选择数据完整性方法 教学过程 数据完整性的概念 约束管理 缺省管理 规则管理 完整性技术比较研究 14.1 数据完整性的概念 在Microsoft SQL Server系统中,有3种类型的数据完整性,即域完整性、实体完整性和参考完整性。 域完整性,也可以称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。 实体完整性,也可以称为行完整性,要求表中的所有行有一个惟一的标识符,这种标识符一般称为主键值。 参考完整性保证在主键(在被参考表中)和外键之间的关系总是得到维护。 实现数据完整性 在Microsoft SQL Server系统中,可以使用两种方式实现数据完整性,即声明数据完整性和过程数据完整性。 声明数据完整性就是通过在对象定义中定义的数据标准来实现数据完整性,是由系统本身自动强制来实现的。声明数据完整性的方式包括使用各种约束、缺省和规则。例如,在某个表中定义了主键约束,那么这种定义就由系统自动强制实现。 过程数据完整性是通过在脚本语言中定义的数据完整性标准来实现的。在执行这些脚本的过程中,由脚本中定义的强制完整性的实现。过程数据完整性的方式包括使用触发器和存储过程等。 14.2 约束管理 约束的类型 定义约束 缺省约束管理 检查约束管理 主键约束管理 惟一性约束管理 外键约束管理 禁止在已有的数据上应用约束 禁止在加载数据时应用约束 约束的类型 定义约束 使用CREATE TABLE语句表示在创建表的时候定义约束,使用ALTER TABLE语句表示在已有的表中添加约束。 如果表中已经有数据,那么也可以增加约束。 定义约束时,既可以把约束放在一个列上,也可以把约束放在多个列上。如果把约束放在一个列上,那么该约束称为列级约束;如果把约束放在多个列上,那么把该约束称为表级约束。 CREATE TABLE语句 CREATE TABLE table_name ( column_name data_type [CONSTRAINT constraint_name { PRIMARY KEY [ CLUSTERED |NONCLUSTERED ] | UNIQUE [ CLUSTERED |NONCLUSTERED ] | FOREIGN KEY REFERENCES ref_table( ref_colunm ) | DEFAULT constant_expression | CHECK logical_expression }] 缺省约束管理 当使用INSERT语句插入数据时,如果某一个列没有指定数据,那么缺省约束就在该列中输入一个值。 缺省约束的语法形式如下: CONSTRAINT constraint_name DEFAULT constant_expression 检查约束管理 检查约束用来限制用户输入某一个列的数据,即在该列中只能输入指定范围的数据。检查约束非常类似于WHERE子句,其共同之处就是指定可接受数据的条件。 检查约束的语法形式如下: CONSTRAINT constraint_name CHECK (logical_expression) 主键约束管理 主键约束在表中定义一个主键值,这是惟一确定表中每一行数据的标识符。在所有的约束类型中,主键约束是最重要的一种约束类型,也是使用最为广泛的约束类型。该约束强制实体完整性。 主键约束的语法形式如下: CONSTRAINT constraint_name PRIMARY KEY [CLUSTERED | NONCLUSTERED ]( column[, …n]) 惟一性约束管理 惟一性约束指定表中某一个列或多个列不能有相同的两行或两个以上行数据存在。这种约束通过实现惟一性索引来强制实体完整性。当表中已经有了一个主键约束时,如果需要在其他列上实现实体完整性,由于表中不能有两个或两个以上的主键约束,那么可以通过创建惟一性约束来实现。 惟一性约束的语法形式如下: CONSTRAINT constraint_name UNIQUE [CLUSTERED | NONCLUSTERED](column[, …n]) 外键约束管理 外

文档评论(0)

1亿VIP精品文档

相关文档