SQLServer2005数据库应用项目教程--学习情景5

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SQLServer2005数据库应用项目教程学习情景5:数据库其它对象的创建与管理SQLServer2005数据库应用项目教程单元描述数据库和数据表创建完毕,并不表示数据库的设计就结束了,用户往往会对数据库有一些特殊的要求,比如:数据库是否具备数据完整性关系?如何提高数据的检索速度?当需要频繁执行某一特殊任务时,如何避免重复编写程序代码?在SQLServer2005中提供了一系列数据库对象来解决类似以上的问题。本学习情景将重点介绍在SCDB数据库中创建和管理这些数据库对象(约束、索引、视图、存储过程、触发器等)来解决实际问题的过程。SQLServer2005数据库应用项目教程学习目标学会数据完整性的设计;学会索引的创建与管理;学会视图的创建与管理;学会存储过程的创建与管理;学会触发器的创建与管理;学会游标的创建与使用;了解游标的使用方法。SQLServer2005数据库应用项目教程项目1:SCDB中数据完整性的设计【任务描述】数据库中的数据是从外界输入的,而数据的输入由于种种原因,会输入无效或错误的信息。那么保证数据正确性、一致性和可靠性,就成了数据库系统关注的重要问题。SQLServer提供了数据完整性的设计来解决以上问题,具体可以通过创建约束、默认、规则、用户自定义函数来解决。SQLServer2005数据库应用项目教程项目1:SCDB中数据完整性的设计【任务目标】了解数据完整性的基本概念;掌握创建和使用约束来保证数据的完整性;掌握创建、绑定、解绑定和删除默认值的方法;掌握创建、绑定、解绑定和删除规则的方法;掌握创建、绑定、使用和删除用户自定义完整性的方法。SQLServer2005数据库应用项目教程任务1了解数据完整性的基础知识数据的完整性是指存储在数据库中数据的正确性、一致性和可靠性。根据数据的完整性所作用的数据库对象和范围的不同,数据的完整性分为实体完整性、域完整性、参照完整性和用户定义完整性4种。SQLServer2005数据库应用项目教程任务1了解数据完整性的基础知识1、实体完整性实体完整性也可称表的完整性。它用于保证数据库中数据表的每一个特定实体都是唯一的,可以通过主键约束(PRIMARYKEY)、唯一键约束(UNIQUE)、索引或标识属性(IDENTITY)来实现。SQLServer2005数据库应用项目教程任务1了解数据完整性的基础知识2、域完整性域完整性也可称列完整性,用以指定列的数据输入是否具有正确的数据类型、格式以及有效的数据范围。SQLServer2005数据库应用项目教程任务1了解数据完整性的基础知识3、参照完整性参照完整性是保证参照与被参照表中数据的一致性。例如,在学生表Student中有学生的学号StudentID且在选课表SC中也有学号StudentID,而且两个表的学号StudentID值必须一致,如果在输入过程中出现错误且又没有被系统检查出来,那么数据之间将会造成混乱。SQLServer2005数据库应用项目教程任务1了解数据完整性的基础知识4、用户定义完整性用户定义完整性允许用户定义不属于其他任何完整性分类的特定规则。所有的完整性类型都支持用户定义完整性。用户定义的完整性主要通过使用触发器和存储过程来强制实施完整性。存储过程和触发器的相关知识在后续任务中介绍。SQLServer2005数据库应用项目教程任务2:约束的实现1.约束的类型约束是SQLServer强制实行的应用规则,它通过限制列、行和表中的数据来保证数据的完整性。当删除表时,表所带的约束也随之被删除。常用的约束包括CHECK约束、PRIMARYKEY约束、FOREIGNKEY约束、UNIQUE约束和DEFAULT约束。SQLServer2005数据库应用项目教程任务2:约束的实现(1)CHECK约束CHECK约束用于限制输入一列或多列的值的范围,通过逻辑表达式来判断数据的有效性,也就是一个列的输入内容必须满足CHECK约束的条件,否则,数据无法正常输入,从而强制数据的域完整性。SQLServer2005数据库应用项目教程任务2:约束的实现(2)DEFAULT约束若在表中某列定义了DEFAULT约束,用户在插入新的数据行时,如果该列没有指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值(NULL)。SQLServer2005数据库应用项目教程任务2:约束的实现(3)PRIMARYKEY约束在表中经常有一列或多列的组合,其值能唯一标识表中的每一行。这样的一列或多列成为表的主键(PrimaryKey),通过它可以强制表的实体完整性。一个表只能有一个主键,而且主键约束中的列不能为空值。SQLServer2005数据库应用项目教程任务2:约束的实现(4)FOREIGNKEY约束外健(ForeignKey)是用于建立和加强两个表(主表与从表)的一列或多列数据之间的连接,当添加、修改或删除数据时,通过参照完整性来保证它们之间的数据的一致性。SQLServer2005数据库应用项目教程任务2:约束的实现(5)UNIQUE约束UNIQUE约束用于确保表中的两个数据行在非主键中没有相同的列值。与PRIMARYKEY'约束类似,UNIQUE约束也强制唯一性,为表中的一列或多列提供实体完整性。但UNIQUE约束用于非主健的一列或多列组合,且一个表可以定义多个UNIQUE约束。另外,UNIQUE约束可以用于定义多列组合,且一个表可以定义多个UNIQUE约束,UNIQUE约束可以用于定义允许空值的列;而PRIMAYRKEY约束只能用在唯一列上,且不能为空值。SQLServer2005数据库应用项目教程任务2:约束的实现2.约束的创建、查看与删除约束的创建、查看与删除等操作均可在SQLServerManagementStudio的【对象资源管理器】面板中进行,也可使用Transact-SQL语句进行。SQLServer2005数据库应用项目教程任务2:约束的实现(1)CHECK约束的创建、查看和删除【例】在学生表(Student)中定义学生的性别Sex列只能是“男”或“女”,从而避免用户输入其他的值。要解决此问题,需要用到CHECK约束,使学生性别列的值只有“男”或“女”两种可能,如果用户输入其他值,系统均提示用户输入无效。SQLServer2005数据库应用项目教程任务2:约束的实现①在SQLServerManagementStudio的【对象资源管理器】中选取【数据库】选项下的SCDB数据库。②展开数据库SCDB,并展开数据库SCDB目录下的【表】,右击“dbo.Student”选项,在弹出的快捷菜单中,选择【设计(G)】命令,打开【设计表】窗口,选中“Sex”,然后,单击【菜单栏】中的【表设计器】窗口工具栏上的【CHECK约束】命令,如图所示;或者将鼠标放在列“Sex”上,右击鼠标,在弹出的快捷菜单中,选择【CHECK约束】命令,如图所示。SQLServer2005数据库应用项目教程任务2:约束的实现③在弹出的【CHECK约束】窗口中单击【添加】按钮,如图所示。④单击“表达式”后面的按钮,进入如图所示的CHECK约束表达式的界面,在“表达式”文本框中输入约束表达式“Sex='男'ORSex='女',如图所示。然后,单击“确定”按钮。SQLServer2005数据库应用项目教程任务2:约束的实现⑤在【设计表】窗口单击(【保存】),即完成了创建并保存CHECK约束的操作。以后用户输入数据时,若输入性别不是“男”或“女”,系统将报告输入无效。要想删除上面创建的CHECK约束,选择该约束,右击鼠标,在弹出的菜单中选择【删除】命令,如图所示,然后单击“关闭”按钮,即可删除CHECK约束。SQLServer2005数据库应用项目教程任务2:约束的实现【例】使用Transact-SQL语句为学生表Student创建CHECK约束。在SQLServerManagementStudio查询编辑器中运行以下代码:USESCDBGOALTERTABLEStudentADDCONSTRAINTCK_StudentCHECK(sex='男'orsex='女')GOSQLServer2005数据库应用项目教程任务2:约束的实现删除CHECK约束的语句格式如下:DROPCONSTRAINTCHECKconstraint_name【例】删除创建的约束CK_Student。USESCDBGOALTERTABLEStudentDROPCONSTRAINTCK_StudentGOSQLServer2005数据库应用项目教程任务3:默认值的实现1.默认值的概念与在约束中介绍的DEFAULT约束类似,使用默认值也可以实现当用户在向数据库表中插入新纪录时,如果没有给出某列的输入值,则有系统自动为该列输入默认值的功能。默认值可以是常量、内置函数或数学表达式。SQLServer2005数据库应用项目教程任务3:默认值的实现2.创建默认值通常创建并使用默认值的步骤为:①创建一个默认值对象。创建默认的命令如下:CREATEDEFAULTdefault_nameASconstraint_expressionSQLServer2005数据库应用项目教程任务3:默认值的实现②将其捆绑到列或用户自定义数据类型上。绑定默认值的命令如下:EXECsp_bindefaultdefault_name,'table_name.[column_name]'SQLServer2005数据库应用项目教程任务3:默认值的实现3.删除默认值通常删除默认值的步骤为:①解除默认值捆绑的列或用户自定义数据类型。解除绑定默认值的命令如下:EXECsp_unbindefault'table_name.column_name'②删除该默认值。具体的命令语句如下:DROPDEFAULTdefault_nameSQLServer2005数据库应用项目教程任务4:规则的实现1.规则的概念规则也是实现数据完整性的方法之一,其作用与CHECK约束的部分功能相同。规则可以被绑定到一个列或者用户定义数据类型上,它提供了一种加强列或用户定义数据类型域约束的机制。当其被绑定到列或用户定义的数据类型上时,用来指定允许输入到列中的数据,即当用户向表中插入数据时,用来指定该列接受数据值的范围。同时,规则与默认一样在数据库中只需要定义一次,就可以被多次应用。SQLServer2005数据库应用项目教程任务4:规则的实现2.创建规则和默认值类似,规则创建后,需要将其捆绑到列上或用户自定义数据类型上。创建规则的命令如下:CREATERULErule_nameASconstraint_expression捆绑规则的命令语句如下:EXECsp_bindrulerule_name,'table_name.[column_name]'SQLServer2005数据库应用项目教程任务4:规则的实现如果在列或数据类型上已经捆绑了规则,那么当再次向它们捆绑规则时,旧规则将自动被新规则覆盖,而不会捆绑多条规则。捆绑规则可以使用系统存储过程sp_bindrule,解除规则的相关绑定可以使用系统存储过程sp_unbindrule。SQLServer2005数据库应用项目教程任务4:规则的实现3.删除规则①解除规则捆绑的列或用户自定义数据类型。解除绑定默认值的命令如下:EXECsp_unbindrule'table_name.column_name'②删除该规则。具体的命令语句如下:DROPRulerule_nameSQLServer2005数据库应用项目教程任务5:用户自定义函数的实现1.用户自定义函数为了扩展T-SQL的编程能力,SQLServer2005除了提供的内部函数外,还允许用户自定义函数。用户可以使用CREATEFUNCTION语句编写自已的函数,以满足特殊需要。用户自定义函数可用传递一个或多个参数,并返回一个简单的数值。SQLServer2005数据库应用项目教程任务5:用户自定义函数的实现(1)创建标量用户自定义函数标量用户自定义

1 / 103
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功