- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第7章实现数据完整性n7.1数据完整性的概念n7.2实现数据完整性n7.3查看约束信息n7.4删除约束
7.1数据完整性的概念n1.完整性约束条件的作用对象n2.实现数据完整性的方法
1.完整性约束条件的作用对象n完整性约束条件的作用对象可以是表、元组和列。n列约束主要是列的类型、取值范围、精度等;如:年龄0~150,性别{男,女}n元组约束是元组中各个字段间的联系的约束。如:开始日期小于结束日期
完整性类型n实体完整性实体完整性将行定义为特定表的唯一实体。一般用主码约束实现n域完整性域完整性是指给定列的输入有效性。年龄0~150,一般用check等实现n引用完整性引用完整性保持表之间已定义的关系。一般用外码实现
2.实现数据完整性的方法n声明完整性n在表定义时声明n使用约束(CONSTRAINT)、缺省值(DEFAULT)等n由SQLServer自动加以保证n过程完整性n在客户端或服务器端用编程语言或工具实现n在Server端用触发器(trigger)来实现
7.2实现约束n1.PRIMARYKEY约束n2.Unique约束n3.FOREIGNKEY约束n4.Default约束n5.CHECK约束
PRIMARYKEY约束n保证实体完整性n每个表有且只有一个PRIMARYKEY约束n格式:[CONSTAINT约束名]PRIMARYKEY(列名[,…n])
PRIMARYKEY约束示例n为employees表和jobs表添加PRIMARYKEY约束ALTERTABLEemployeesADDCONSTRAINTPK_employees_emp_idPRIMARYKEY(emp_id)ALTERTABLEjobsADDCONSTRAINTPK_jobs_job_idPRIMARYKEY(job_id)
Unique约束n确保在非主键列中不输入重复值。n应用在客观具有唯一性质的列上,如身份证号、社会保险号等。n格式:[CONSTAINT约束名]UNIQUE(列名[,…n])
Unique约束示例n限制employees的sid都是唯一的AltertableemployeesAddConstraintu_employees_sidUnique(sid)
FOREIGNKEY约束n用于建立和加强两个表数据之间的连接的一列或多列n格式:[CONSTAINT约束名]FOREIGNKEY(本表列名)REFERENCES引用表名(引用列名)
FK约束示例n在employees表的job_id添加外键约束,保证雇员从事的工作一定是在jobs表中已有的工作。ALTERTABLEemployeesADDCONSTRAINTFK_employees_job_idFOREIGNKEY(job_id)REFERENCESjobs(job_id)
Default(默认)约束n当向表中插入数据时,如果没有为定义了DEFAULT的列提供值,则是隐式要求为此列使用默认值。n一个Default只能约束一列n格式:[CONSTAINT约束名]DEFAULT约束表达式for列名
Default约束示例n当未给employees表的受雇日期插入值时,取当前值插入AltertableemployeesAddconstraintdf_emp_datedefaultgetdate()foremp_date也可以在定义表的同时定义约束:CreateTableemployees(......emp_datedatetimeconstraintdf_emp_datedefaultgetdate(),......)
CHECK约束n通过限制输入到列中的值来强制域的完整性。n可定义同表多列之间的约束关系n格式[CONSTAINT约束名]CHECK逻辑表达式
Check约束示例1n限制employees表的salary必须大于0AltertableemployeesAddConstraintck_employees_salaryCheck(salary0)
Check约束示例2n限制employees表的Phone必须是8位长,且每一位必须是0~9的数字AltertableemployeesAddConstraintck_employees_phoneCheck(phoneLike‘[1-9][0-9][0-9][0-9][0-9][0-9][0
您可能关注的文档
- 实际问题与方程相遇问题课件.ppt
- 2024-2030年中国涂料设备行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国消费品中的防伪包装行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国消费者身份和访问管理(IAM)行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国涡轮砂磨机市场销售规模及竞争对手调研研究报告.docx
- 2024-2030年中国润滑牙科真空泵行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国液体取样器行业市场发展趋势与前景展望战略分析报告.docx
- 实际问题与二元一次方程组课件().ppt
- 2024-2030年中国液体流熨平板行业市场发展趋势与前景展望战略分析报告.docx
- 2024-2030年中国液化气滑片泵行业市场发展分析及需求分析与投资研究报告.docx
文档评论(0)