实现数据完整性1.ppt_第1页
实现数据完整性1.ppt_第2页
实现数据完整性1.ppt_第3页
实现数据完整性1.ppt_第4页
实现数据完整性1.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

第7章 实现数据完整性,7.1 数据完整性的概念 7.2 实现数据完整性 7.3 查看约束信息 7.4 删除约束,7.1 数据完整性的概念,1. 完整性约束条件的作用对象 2. 实现数据完整性的方法,1. 完整性约束条件的作用对象,完整性约束条件的作用对象可以是表、元组和列。 列约束主要是列的类型、取值范围、精度等; 如: 年龄0150,性别男,女 元组约束是元组中各个字段间的联系的约束。 如:开始日期小于结束日期,完整性类型,实体完整性 实体完整性将行定义为特定表的唯一实体。 一般用主码约束实现 域完整性 域完整性是指给定列的输入有效性。 年龄0150,一般用check等实现 引用完整性 引用完整性保持表之间已定义的关系。 一般用外码实现,2. 实现数据完整性的方法,声明完整性 在表定义时声明 使用约束(CONSTRAINT)、缺省值(DEFAULT)等 由SQL Server自动加以保证 过程完整性 在客户端或服务器端用编程语言或工具实现 在Server端用触发器(trigger)来实现,7.2 实现约束,1. PRIMARY KEY 约束 2. Unique 约束 3. FOREIGN KEY 约束 4. Default 约束 5. CHECK 约束,PRIMARY KEY 约束,保证实体完整性 每个表有且只有一个PRIMARY KEY 约束 格式: CONSTAINT 约束名 PRIMARY KEY ( 列名 , n ),PRIMARY KEY 约束示例,为employees表和jobs表添加PRIMARY KEY 约束 ALTER TABLE employees ADD CONSTRAINT PK_employees_emp_id PRIMARY KEY (emp_id) ALTER TABLE jobs ADD CONSTRAINT PK_jobs_job_id PRIMARY KEY (job_id),Unique约束,确保在非主键列中不输入重复值。 应用在客观具有唯一性质的列上,如身份证号、社会保险号等。 格式: CONSTAINT 约束名 UNIQUE ( 列名 , n ),Unique 约束示例,限制employees的sid都是唯一的 Alter table employees Add Constraint u_employees_sid Unique (sid),FOREIGN KEY 约束,用于建立和加强两个表数据之间的连接的一列或多列 格式: CONSTAINT 约束名 FOREIGN KEY (本表列名 ) REFERENCES 引用表名 ( 引用列名 ),FK约束示例,在employees表的job_id添加外键约束,保证雇员从事的工作一定是在jobs表中已有的工作。 ALTER TABLE employees ADD CONSTRAINT FK_employees_job_id FOREIGN KEY (job_id) REFERENCES jobs(job_id),Default (默认)约束,当向表中插入数据时,如果没有为定义了 DEFAULT 的列提供值,则是隐式要求为此列使用默认值。 一个Default只能约束一列 格式: CONSTAINT 约束名 DEFAULT 约束表达式 for 列名,Default约束示例,当未给employees表的受雇日期插入值时,取当前值插入 Alter table employees Add constraint df_emp_date default getdate() for emp_date 也可以在定义表的同时定义约束: Create Table employees ( emp_date datetime constraint df_emp_date default getdate(), ),CHECK约束,通过限制输入到列中的值来强制域的完整性。 可定义同表多列之间的约束关系 格式 CONSTAINT 约束名 CHECK 逻辑表达式,Check 约束示例1,限制employees表的salary必须大于0 Alter table employees Add Constraint ck_employees_salary Check (salary 0),Check 约束示例2,限制employees表的Phone必须是8位长,且每一位必须是0 9的数字 Alter table employees Add Constraint ck_employees_phone Check (phone Like 1-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 ),Check 约束示例3,限制jobs表的low_salary必须小于high_salary Alter table Jobs Add Constraint ck_jobs_salary Check (low_salaryhigh_salary),

温馨提示

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

评论

0/150

提交评论