《第7章-实现数据完整性.优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第7章-实现数据完整性.优秀PPT.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第7章实现数据完整性n7.1数据完整性的概念n7.2实现数据完整性n7.3查看约束信息n7.4删除约束7.1数据完整性的概念n1.完整性约束条件的作用对象n2.实现数据完整性的方法1.完整性约束条件的作用对象n完整性约束条件的作用对象可以是表、元组和列。n列约束主要是列的类型、取值范围、精度等;n如:年龄0150,性别男,女n元组约束是元组中各个字段间的联系的约束。n如:起先日期小于结束日期完整性类型n实体完整性实体完整性实体完整性将行定义为特定表的唯一实体。一般用主码约束实现n域完整性域完整性域完整性是指给定列的输入有效性。年龄0150,一般用check等实现n引用完整性引用完整性引用完整性
2、保持表之间已定义的关系。一般用外码实现2.实现数据完整性的方法n声明完整性声明完整性 n在表定义时声明在表定义时声明 n运用约束运用约束(CONSTRAINT)、缺省值、缺省值(DEFAULT)等等 n由由SQL Server自动加以保证自动加以保证 n过程完整性过程完整性 n在客户端或服务器端用编程语言或工具在客户端或服务器端用编程语言或工具实现实现 n在在Server端用触发器(端用触发器(trigger)来实现)来实现7.2实现约束n1.PRIMARYKEY约束n2.Unique约束n3.FOREIGNKEY约束n4.Default约束n5.CHECK约束PRIMARYKEY约束n保证明
3、体完整性n每个表有且只有一个PRIMARYKEY约束n格式:nCONSTAINT约束名nPRIMARYKEY(列名,n)PRIMARYKEY约束示例n为employees表和jobs表添加PRIMARYKEY约束ALTERTABLEemployeesADDCONSTRAINTPK_employees_emp_idPRIMARYKEY(emp_id)ALTERTABLEjobsADDCONSTRAINTPK_jobs_job_idPRIMARYKEY(job_id)Unique约束n确保在非主键列中不输入重复值。n应用在客观具有唯一性质的列上,如身份证号、社会保险号等。n格式:CONSTAINT
4、约束名 UNIQUE (列名列名,n)Unique约束示例n限制employees的sid都是唯一的AltertableemployeesAddConstraintu_employees_sidUnique(sid)FOREIGNKEY约束n用于建立和加强两个表数据之间的连接的一列或多列n格式:CONSTAINT约束名 FOREIGNKEY(本表列名)REFERENCES引用表名(引用列名)FK约束示例n在employees表的job_id添加外键约束,保证雇员从事的工作确定是在jobs表中已有的工作。nALTERTABLEemployeesnADDCONSTRAINTFK_employees
5、_job_idnFOREIGNKEY(job_id)nREFERENCESjobs(job_id)Default(默认)约束n当向表中插入数据时,假如没有为定义了DEFAULT的列供应值,则是隐式要求为此列运用默认值。n一个Default只能约束一列n格式:nCONSTAINT约束名nDEFAULT约束表达式for列名Default约束示例n当未给employees表的受雇日期插入值时,取当前值插入AltertableemployeesAddconstraintdf_emp_datedefaultgetdate()foremp_date也可以在定义表的同时定义约束:CreateTableemp
6、loyees(.emp_date datetime constraint df_emp_datedefaultgetdate(),.)CHECK约束n通过限制输入到列中的值来强制域的完整性。n可定义同表多列之间的约束关系n格式CONSTAINT约束名 CHECK 逻辑表达式逻辑表达式Check 约束示例1n限制employees表的salary必需大于0nAltertableemployeesnAddConstraintck_employees_salarynCheck(salary0)Check 约束示例2n限制employees表的Phone必需是8位长,且每一位必需是09的数字nAlte
7、rtableemployeesnAddConstraintck_employees_phonenCheck(phoneLike1-90-90-90-90-90-90-90-9)Check 约束示例3n限制jobs表的low_salary必需小于high_salarynAltertableJobsnAddConstraintck_jobs_salarynCheck(low_salaryhigh_salary)7.3查看约束信息n运用查询分析器n运用系统存储过程nsp_helpconstraint表名7.4删除约束n运用查询分析器n运用SQL语句nALTERTABLE表名nDROPCONSTRAINT约束名