




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/6/14,1,第五章教学要求,理解数据库完整性控制的基本概念与方法。掌握SQLServer2005定义完整性约束的方法。,2020/6/14,2,第五章教学重点,数据库完整性控制的基本概念与方法。SQLServer2005定义完整性约束的方法。,2020/6/14,3,第五章教学难点,数据库完整性控制的基本概念与方法。SQLServer2005定义完整性约束的方法。,2020/6/14,4,第五章教学内容,完整性约束条件SQLServer2005中对数据完整性控制,2020/6/14,5,创建、删除和修改约束,在SQLServer2005中有5种约束:主键约束(primarykeyconstraint)唯一性约束(uniqueconstraint)检查约束(checkconstraint)缺省约束(defaultconstraint)外部键约束(foreignkeyconstraint),2020/6/14,6,1.主键约束,主键的添加、删除和修改操作方法有两种:(一)ManagementStudio操作法,在ManagementStudio中,用右键单击要操作的数据库表,从弹出的快捷菜单中选择“修改”选项,然后根据图示操作。(二)Transact-SQL语句操作法。其语法形式如下:CONSTRAINTconstraint_namePRIMARYKEYCLUSTERED|NONCLUSTERED(column_name,n),2020/6/14,7,2020/6/14,8,2020/6/14,9,2020/6/14,10,2020/6/14,11,按下shift键再用鼠标同时选中,鼠标左键选中即可设置主键约束,2020/6/14,12,返回,2020/6/14,13,主键约束各参数的说明如下,constraint_name:用于指定约束的名称,约束的名称在数据库中应该是唯一的。如果不指定,则系统会自动生成一个约束名。CLUSTERED|NONCLUSTERED:用于指定索引的类型,即聚簇索引或者非聚簇索引,CLUSTERED为默认值。column_name:用于指定主键的列名。主键最多由16个列组成。,2020/6/14,14,例子,在执行创建产品信息表的操作时,指定产品编号为主键值,并且创建一个聚簇索引。createtableproducts(idchar(10)notnull,namechar(20)notnull,pricemoneydefault0.01,quantitysmallintnull,constraintpk_idprimarykeyclustered(id),2020/6/14,15,2.唯一性约束,唯一性约束用于指定一个或者多个列的组合的值具有唯一性,以防止在列中输入重复的值。当使用唯一性约束时,需要考虑以下几个因素:使用唯一性约束的字段允许为空值。一个表中可以允许有多个唯一性约束。可以把唯一性约束定义在多个字段上。唯一性约束用于强制在指定字段上创建一个唯一性索引。缺省情况下,创建的索引类型为非聚簇索引。,2020/6/14,16,创建和修改唯一性约束的操作方法,创建和修改唯一性约束的操作方法有两种:(一)ManagementStudio操作法,通过ManagementStudio可以完成创建和修改唯一性约束的操作。(二)Transact-SQL语句操作法。CONSTRAINTconstraint_nameUNIQUECLUSTERED|NONCLUSTERED(column_name,n),下一页,2020/6/14,17,此处可以创建唯一性约束,2020/6/14,18,2020/6/14,19,2020/6/14,20,3.检查约束,一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关。一个表中可以定义多个检查约束。每个CREATETABLE语句中每个字段只能定义一个检查约束。在多个字段上定义检查约束,则必须将检查约束定义为表级约束。当执行INSERT语句或者UPDATE语句时,检查约束将验证数据。检查约束中不能包含子查询。,2020/6/14,21,创建检查约束常用的操作方法有两种,1.ManagementStudio操作法。使用ManagementStudio创建检查约束,根据图示进行操作。2.Transact-SQL语句操作法。检查约束的Transact-SQL语句操作法,其语法形式如下:CONSTRAINTconstraint_nameCHECKNOTFORREPLICATION(logical_expression),2020/6/14,22,2020/6/14,23,2020/6/14,24,2020/6/14,25,例子,创建了一个学生信息表,其中输入性别字段值时,只能接受“F”或者“M”。createtablestudent(Idchar(8),namechar(8),sexchar(2),phonenumint,constraintchk_sexcheck(sexin(F,M),2020/6/14,26,4.缺省约束,使用缺省约束时,应该注意以下几点:每个字段只能定义一个缺省约束。如果定义的缺省值长于其对应字段的允许长度,那么输入到表中的缺省值将被截断。不能加入到带有IDENTITY属性或者数据类型为timestamp的字段上。如果字段定义为用户定义的数据类型,而且有一个缺省绑定到这个数据类型上,则不允许该字段有缺省约束。,2020/6/14,27,例子,创建了一个学生信息表,其中输入性别字段值时,只能接受“F”或者“M”,并且缺省设置sex为“M”。createtablestudent(Idchar(8),namechar(8),sexchar(2)defaultm,phonenumint,constraintchk_sexcheck(sexin(F,M),2020/6/14,28,2020/6/14,29,5.外部键约束,外部键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。当使用外部键约束时,应该考虑以下几个因素:外部键约束提供了字段参照完整性。外部键从句中的字段数目和每个字段指定的数据类型必须和REFERENCES从句中的字段相匹配。外部键约束不能自动创建索引,需要用户手动创建。,2020/6/14,30,用户想要修改外部键约束的数据,必须有对外部键约束所参考表的SELECT权限或者REFERENCES权限。参考同一表中的字段时,必须只使用REFERENCES子句,不能使用外部键子句。一个表中最多可以有31个外部键约束。在临时表中,不能使用外部键约束。主键和外部键的数据类型必须严格匹配。,2020/6/14,31,例:,给SC表添加这样一个约束,使用户输入的学生学号必须要在Student表中的sno列中出现过的学生学号。altertablescaddconstraintref_stu_snoforeignkey(sno)referencesstudent(sno),2020/6/14,32,演示过程建立检查约束,2020/6/14,33,演示过程建立检查约束,2020/6/14,34,演示过程建立检查约束,2020/6/14,35,演示过程建立默认值约束,2020/6/14,36,演示过程建立默认值约束,2020/6/14,37,演示过程建立检查约束,2020/6/14,38,演示过程建立检查约束,2020/6/14,39,演示过程-建立外键约束,2020/6/14,40,演示过程建立外键约束,2020/6/14,41,演示过程检查外键约束,2020/6/14,42,演示过程检查外键约束,2020/6/14,43,演示过程删除外键约束,2020/6/14,44,索引操作,创建索引查看、修改和删除索引,2020/6/14,45,一、什么叫索引,数据库中的索引与书籍中的索引类似,在一本书中,利用索引可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。书中的索引是一个词语列表,其中注明了包含各个词的页码。而数据库中的索引是某个表中一列或者若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。,2020/6/14,46,二、索引的作用,通过创建唯一索引,可以保证数据记录的唯一性。可以大大加快数据检索速度。可以加速表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。在使用ORDERBY和GROUPBY子句中进行检索数据时,可以显著减少查询中分组和排序的时间。使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。,2020/6/14,47,聚集索引与非聚集索引,聚集索引对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,即聚集索引与数据是混为一体的,它的叶节点中存储的是实际的数据。非聚集索引具有完全独立于数据行的结构,使用非聚集索引不用将物理数据页中的数据按列排序。非聚集索引的叶节点存储了组成非聚集索引的关键字值和行定位器。,返回,2020/6/14,48,创建索引,SQLServer2005创建索引的方法(1)利用对象资源管理器直接创建索引。(3)利用Transact-SQL语句中的CREATEINDEX命令创建索引。,2020/6/14,49,利用对象资源管理器直接创建索引,其具体步骤如下:()在对象资源管理器中,展开指定的服务器、数据库,展开要创建索引的表,用右键单击“索引”,从弹出的快捷菜单中选择“新建索引”选项,点击,则出现新建索引对话框。(2)填写索引名称,选择索引类型,添加建立索引的属性列,选择完成后单击“确定”按钮,即可生成新的索引;单击“取消”按钮,则取消新建索引的操作。,2020/6/14,50,2020/6/14,51,2020/6/14,52,利用Transact-SQL语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 维修作业区危险源考试试题及答案(修理工)
- 湖北省工程测量员理论模拟试题(附答案)
- 解析卷-吉林省双辽市七年级上册有理数及其运算同步测评试题(含详细解析)
- 推拿治疗学复习试题附参考答案详解(轻巧夺冠)
- 押题宝典期货从业资格之《期货法律法规》模考模拟试题附参考答案详解(考试直接用)
- 考点解析-辽宁省灯塔市中考数学真题分类(勾股定理)汇编章节练习试题(解析卷)
- 微型企业面试题库及完整答案详解(全优)
- 2025至2030年中国直接接触食品材料市场供需现状及投资战略研究报告
- 解析卷人教版8年级数学下册《平行四边形》定向练习试题(含详细解析)
- 2025版塑钢门窗材料行业技术培训与合作合同
- 2025年四川省成都市高新区事业单位招聘考试综合类面试真题模拟试卷
- 2025年秋统编版语文二年级上册全册课件(课标版)
- 七下期末人教版数学试卷
- 2025全国农业(水产)行业职业技能大赛(水生物病害防治员)选拔赛试题库(含答案)
- 八年级下册道德与法治-知识清单
- 药物化学(全套课件)
- 污水站沉淀池清淤及清洗工作施工方案
- 中国新生儿复苏指南解读(2021修订)
- 三角机位与轴线规律课件
- 【绝对实用】食堂库房检查记录表
- 新外研版九年级上册(初三)英语全册教学课件PPT
评论
0/150
提交评论