《SQLServer2005数据库技术及应用》课件第12章 数据完整性的实现方法_第1页
《SQLServer2005数据库技术及应用》课件第12章 数据完整性的实现方法_第2页
《SQLServer2005数据库技术及应用》课件第12章 数据完整性的实现方法_第3页
《SQLServer2005数据库技术及应用》课件第12章 数据完整性的实现方法_第4页
《SQLServer2005数据库技术及应用》课件第12章 数据完整性的实现方法_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第12章 数据完整性的实现方法第12章 数据完整性的实现方法12.1 约束12.1.1 主键(PRIMARY KEY)约束12.1.2 唯一(UNIQUE)约束12.1.3 检查(CHECK)约束12.1.4 外键(FOREIGN KEY)约束12.1.5 默认值(DEFAULT)约束12.2 默认值12.3 规则 SQL Server 200512.1 约束约束(CONSTRAINTS)是实现数据完整性的首选方法。顾名思义,约束就是一种限制,使数据表中对象的取值不能随心所欲,要在允许的范围内 约束支持域完整性、实体完整性、引用完整性以及用户定义的完整性。约束分为列级约束和表级约束:前者是只对

2、一列起作用的约束;后者则是对多个列起作用的约束 约束既可以用SQL Server Management Studio创建,也可以用T-SQL语句创建 SQL Server 200512.1.1 主键约束主键约束(PRIMARY KEY)保证某一列或多列组合中的数据相对于表中的每一行都是唯一的,并且这些列就是该表的主键。主键约束不允许在创建主键约束的列上有空值 SQL Server 2005 12.1.1主键约束使用SQL Server Management Studio设置主键约束的步骤:启动SQL Server Management Studio 在对象资源管理器上点击“+”,展开欲设置的数

3、据库和表,在弹出的快捷菜单上单击“修改” 鼠标右击要设置为主键的字段,在弹出的快捷菜单上选择“设置主键”选项,单击鼠标左键 12.1.1 主键约束用T-SQL语句创建主键约束的语法格式: CREATE TABLE table_name( column_name datatype CONSTRAINT constraint_name PRIMARY KEY CLUSTERED | NONCLUSTERED ,n CONSTRAINT constraint_name PRIMARY KEY ,)12.1.2 唯一约束唯一约束的作用是确保在非主键列中不输入重复值。唯一约束和主键约束比较相似,都不允许

4、表中对应字段存在重复值,但二者有以下重要区别:一个表可以定义多个唯一约束,但只能定义一个主键约束。允许为空值的列上可以定义唯一约束,但不能定义主键约束。SQL Server 200512.1.2 唯一约束使用SQL Server Management Studio设置唯一约束的步骤如下:展开数据库和表,右击鼠标选择“修改”,在窗口空白处单击鼠标右键,选择“索引/键” 单击“添加”按钮,系统会自动加上一个默认的唯一约束名称 在常规项“列”对应的输入框选择要创建唯一性约束的列名及排列顺序,在“是唯一的”对应下拉框中选择“是”,单击“关闭”按钮 12.1.2 唯一约束 用T-SQL语句创建唯一约束的

5、语法格式:CREATE TABLE table_name /*指定表名( column_name datatype /*定义字段 CONSTRAINT constraint_name UNIQUE /*列级约束,直接在字段后面定义 CLUSTERED | NONCLUSTERED /*约束的索引类型 ,n /* 表示可定义多个字段CONSTRAINT constraint_name UNIQUE ,) /*表级约束,可在多个字段上定义 12.1.3 检查约束检查约束通过限制输入到列中的值来强制实现域的完整性,方法是通过逻辑表达式来判断数值是否符合要求 SQL Server 200512.1.3

6、 检查约束 使用SQL Server Management Studio 设置检查约束的步骤如下:展开数据库和表 ,右击鼠标选择“修改”,在窗口空白处单击鼠标右键,选择“check约束” 单击“添加”按钮,系统会给出默认的约束名称 在约束表达式窗格中输入约束条件,例如 “grade=0 and grade=100” 12.1.3 检查约束用T-SQL语句创建检查约束语法格式:CREATE TABLE table_name /*指定表名( column_name datatype /*定义字段check_name CHECK ( logical_expression ) /*CHECK约束表达式

7、 ,n )12.1.4 外键约束外键 (FOREIGN KEY) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。创建或更改表时都可以定义外键约束。有了外键约束后,当一行新的数据被加入到表中,或对表中已经存在的属于外部关键字段上的数据进行修改时,新数据必须存在于另一基本表的主关键字上,或者为NULL SQL Server 200512.1.4 外键约束 使用SQL Server Management Studio设置外键约束的步骤如下:展开数据库和表,右击鼠标选择“修改”,然后在上面窗口空白

8、处单击鼠标右键,在快捷菜单中选择“关系” 弹出“外键关系”对话窗口,单击“添加”按钮,系统会给出默认的关系名称 点击“表和列规范”左边的“+”,让系统弹出 “表和列”窗口 在“表和列”窗口选择所要参考的主键的表名、表中的主键,以及本表中设置外键的列名,单击“确定”按钮,再单击“关闭”按钮 12.1.4 外键约束用T-SQL语句创建外键约束语法格式:create TABLE table_name /*指定表名( column_name datatype FOREIGN KEYREFERENCES ref_table (ref_column) /*指定被参照基本表的表名和列名, n )或creat

9、e TABLE table_name( /*指定表名column_name datatype , n CONSTRAINT constranint_name FOREIGN KEY(列名) REFERENCES ref_table (ref_column)) /*单独列出,并指定约束名12.1.5 默认值约束默认值约束让用户能够定义一个值,每当用户没有在某一列中输入值时,则将所定义的值提供给这一列SQL Server 200512.1.5 默认值约束用SQL Server Management Studio设置默认值约束的步骤如下:展开数据库和表,右击鼠标选择“修改” 在系统弹出的窗口中单击要

10、设置默认的列,在下面列属性设置栏的“默认值或绑定”输入框中,输入对应的默认值即可 12.1.5 默认值约束用T-SQL语句设置默认值约束语法格式:ALTER TABLE table_nameADD CONSTRAINT constraint_name DEFAULT default_value FOR column_name 12.2 默认值这里所说的默认值是数据库对象之一,它指定在向数据库中的表插入数据时,如果用户没有明确给出某列的值,SQL Server自动指定该列使用此默认值。它是实现数据完整性的主要方法之一注意默认值对象和前面已经提到的默认值约束是有区别的,虽然它们的最终作用是基本一样

11、的,但用法不同:默认值约束是在创建或修改表时直接指定的,而默认值对象是先独立创建,然后再根据需要绑定到表中某个列上 SQL Server 200512.2 默认值用T-SQL创建默认值语法:CREATE DEFAULT default_name AS constant_expression参数说明:default_name是新建默认值的名称;constant_expression为default_name的值,必须是一个常数表达式 12.2 默认值默认值的绑定:默认值创建好之后,必须将其绑定到某个列或用户自定义数据类型上才能生效。语法:sp_bindefault default_name, o

12、bject_name参数说明:sp_bindefault是实现默认值绑定功能的系统存储过程;default_name是默认值名称;object_name是要与默认值绑定的列名或用户自定义数据类型名,如果指定的是表中的列,格式必须是“table.column”12.2 默认值默认值绑定的解除一个默认值被绑定到表中的列或用户自定义数据类型之后,如果不想再使用了,可以用系统存储过程unbinddefault解除绑定,语法如下:sp_unbinddefault object_name注意绑定解除后作为数据库对象的默认值仍然存在于数据库中 12.2 默认值默认值绑定的删除:如果一个默认值不再使用了,可以

13、用DROP语句将其删除,语法如下:DROP DEFAULT default_name 12.3 规则规则也是数据库对象之一,它指定向表的某列插入或更新数据时,输入值被限定的取值范围。规则是实现数据库域完整性的主要方法之一,可用于表中的列或用户自定义的数据类型规则在功能上等同于我们前面已讲过的 check约束。类似于default约束和 default对象的区别,规则也是要先单独创建然后再绑定到需要的列或数据类型上 SQL Server 200512.3 规则用T-SQL语句创建规则:语法:CREATE RULE rule_name AS condition_expression参数说明:rule_name是被创建的规则的名称;condition_express指明定义规则的条件,在这个条件表达式中不能包含列名或其他数据库对象名,但它带有一个为前缀的参数,即参数的名字必须以为第一个字符 12.3 规则规则的绑定:规则创建好以后,也必须绑定到某个列或用户自定义的数据类型上才能生效。语法:sp_bindrule rule_name, object_name参数说明:rule_name是已创建的规则名;object_name指定要与规则绑定的列名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论