数据库其它对象的创建与管理课程.ppt





《数据库其它对象的创建与管理课程.ppt》由会员分享,可在线阅读,更多相关《数据库其它对象的创建与管理课程.ppt(103页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SQL Server 2005数据库应用项目教程学习情景学习情景5 5:数据库其它对象:数据库其它对象 的创建与管理的创建与管理SQL Server 2005数据库应用项目教程单元描述单元描述 数据库和数据表创建完毕,并不表示数据库的设计就结束了,用户往往会对数据库有一些特殊的要求,比如:数据库是否具备数据完整性关系?如何提高数据的检索速度?当需要频繁执行某一特殊任务时,如何避免重复编写程序代码?在SQL Server 2005中提供了一系列数据库对象来解决类似以上的问题。本学习情景将重点介绍在SCDB数据库中创建和管理这些数据库对象(约束、索引、视图、存储过程、触发器等)来解决实际问题的过程
2、。SQL Server 2005数据库应用项目教程学习目标学习目标学会数据完整性的设计;学会索引的创建与管理;学会视图的创建与管理;学会存储过程的创建与管理;学会触发器的创建与管理;学会游标的创建与使用;了解游标的使用方法。SQL Server 2005数据库应用项目教程项目项目1 :SCDB中数据完整性的设计中数据完整性的设计【任务描述任务描述】 数据库中的数据是从外界输入的,而数据的输入由于种种原因,会输入无效或错误的信息。那么保证数据正确性、一致性和可靠性,就成了数据库系统关注的重要问题。SQL Server提供了数据完整性的设计来解决以上问题,具体可以通过创建约束、默认、规则、用户自定
3、义函数来解决。SQL Server 2005数据库应用项目教程项目项目1 :SCDB中数据完整性的设计中数据完整性的设计【任务目标任务目标】 了解数据完整性的基本概念;掌握创建和使用约束来保证数据的完整性;掌握创建、绑定、解绑定和删除默认值的方法;掌握创建、绑定、解绑定和删除规则的方法;掌握创建、绑定、使用和删除用户自定义完整性的方法。SQL Server 2005数据库应用项目教程任务任务1了解数据完整性的基础知识了解数据完整性的基础知识 数据的完整性是指存储在数据库中数据的正确性、一致性和可靠性。 根据数据的完整性所作用的数据库对象和范围的不同,数据的完整性分为实体完整性、域完整性、参照完
4、整性和用户定义完整性4种。SQL Server 2005数据库应用项目教程任务任务1了解数据完整性的基础知识了解数据完整性的基础知识1、实体完整性 实体完整性也可称表的完整性。它用于保证数据库中数据表的每一个特定实体都是唯一的,可以通过主键约束(PRIMARY KEY)、唯一键约束(UNIQUE)、索引或标识属性(IDENTITY)来实现。SQL Server 2005数据库应用项目教程任务任务1了解数据完整性的基础知识了解数据完整性的基础知识2、域完整性 域完整性也可称列完整性,用以指定列的数据输入是否具有正确的数据类型、格式以及有效的数据范围。SQL Server 2005数据库应用项目教
5、程任务任务1了解数据完整性的基础知识了解数据完整性的基础知识3、参照完整性 参照完整性是保证参照与被参照表中数据的一致性。例如,在学生表Student中有学生的学号StudentID且在选课表SC中也有学号StudentID,而且两个表的学号StudentID值必须一致,如果在输入过程中出现错误且又没有被系统检查出来,那么数据之间将会造成混乱。SQL Server 2005数据库应用项目教程任务任务1了解数据完整性的基础知识了解数据完整性的基础知识4、用户定义完整性 用户定义完整性允许用户定义不属于其他任何完整性分类的特定规则。所有的完整性类型都支持用户定义完整性。用户定义的完整性主要通过使用
6、触发器和存储过程来强制实施完整性。存储过程和触发器的相关知识在后续任务中介绍。SQL Server 2005数据库应用项目教程任务2: 约束的实现1. 约束的类型 约束是SQL Server强制实行的应用规则,它通过限制列、行和表中的数据来保证数据的完整性。当删除表时,表所带的约束也随之被删除。 常用的约束包括CHECK约束、PRIMARY KEY约束、FOREIGN KEY约束、UNIQUE约束和DEFAULT约束。SQL Server 2005数据库应用项目教程任务2: 约束的实现(1)CHECK约束 CHECK约束用于限制输入一列或多列的值的范围,通过逻辑表达式来判断数据的有效性,也就是
7、一个列的输入内容必须满足CHECK约束的条件,否则,数据无法正常输入,从而强制数据的域完整性。SQL Server 2005数据库应用项目教程任务2: 约束的实现(2)DEFAULT约束 若在表中某列定义了DEFAULT约束,用户在插入新的数据行时,如果该列没有指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值(NULL)。SQL Server 2005数据库应用项目教程任务2: 约束的实现(3)PRIMARY KEY约束 在表中经常有一列或多列的组合,其值能唯一标识表中的每一行。这样的一列或多列成为表的主键(Primary Key),通过它可以强制表的实体完整性。一个表只能有一个主
8、键,而且主键约束中的列不能为空值。SQL Server 2005数据库应用项目教程任务2: 约束的实现(4)FOREIGN KEY约束 外健(Foreign Key)是用于建立和加强两个表(主表与从表)的一列或多列数据之间的连接,当添加、修改或删除数据时,通过参照完整性来保证它们之间的数据的一致性。SQL Server 2005数据库应用项目教程任务2: 约束的实现(5)UNIQUE约束 UNIQUE约束用于确保表中的两个数据行在非主键中没有相同的列值。与PRIMARY KEY约束类似,UNIQUE约束也强制唯一性,为表中的一列或多列提供实体完整性。但UNIQUE约束用于非主健的一列或多列组合
9、,且一个表可以定义多个UNIQUE约束。另外,UNIQUE约束可以用于定义多列组合,且一个表可以定义多个UNIQUE约束,UNIQUE约束可以用于定义允许空值的列;而PRIMAYR KEY约束只能用在唯一列上,且不能为空值。SQL Server 2005数据库应用项目教程任务2: 约束的实现2. 约束的创建、查看与删除 约束的创建、查看与删除等操作均可在SQL Server Management Studio的【对象资源管理器】面板中进行,也可使用Transact-SQL语句进行。SQL Server 2005数据库应用项目教程任务2: 约束的实现(1)CHECK约束的创建、查看和删除 【例】
10、在学生表(Student)中定义学生的性别Sex列只能是“男”或“女”,从而避免用户输入其他的值。要解决此问题,需要用到CHECK约束,使学生性别列的值只有“男”或“女”两种可能,如果用户输入其他值,系统均提示用户输入无效。SQL Server 2005数据库应用项目教程任务2: 约束的实现在SQL Server Management Studio的【对象资源管理器】中选取【数据库】选项下的SCDB数据库。展开数据库SCDB,并展开数据库SCDB目录下的【表】,右击“dbo. Student”选项,在弹出的快捷菜单中,选择【设计(G)】命令,打开【设计表】窗口,选中“Sex”,然后,单击【菜单
11、栏】中的【表设计器】窗口工具栏上的【CHECK约束】命令,如图所示;或者将鼠标放在列“Sex”上,右击鼠标,在弹出的快捷菜单中,选择【CHECK约束】命令,如图所示。SQL Server 2005数据库应用项目教程任务2: 约束的实现在弹出的【CHECK约束】窗口中单击【添加】按钮,如图所示。单击“表达式”后面的 按钮,进入如图所示的CHECK约束表达式的界面,在“表达式”文本框中输入约束表达式“Sex=男 OR Sex=女,如图所示。然后,单击“确定”按钮。SQL Server 2005数据库应用项目教程任务2: 约束的实现在【设计表】窗口单击 (【保存】),即完成了创建并保存CHECK约束
12、的操作。以后用户输入数据时,若输入性别不是“男”或“女”,系统将报告输入无效。 要想删除上面创建的CHECK约束,选择该约束,右击鼠标,在弹出的菜单中选择【删除】命令,如图所示,然后单击“关闭”按钮,即可删除CHECK约束。SQL Server 2005数据库应用项目教程任务2: 约束的实现【例】使用Transact-SQL语句为学生表Student创建CHECK约束。 在SQL Server Management Studio查询编辑器中运行以下代码: USE SCDB GO ALTER TABLE Student ADD CONSTRAINT CK_Student CHECK(sex= 男
13、 or sex=女) GOSQL Server 2005数据库应用项目教程任务2: 约束的实现 删除CHECK约束的语句格式如下: DROP CONSTRAINT CHECK constraint_name【例】删除创建的约束CK_Student。 USE SCDB GO ALTER TABLE Student DROP CONSTRAINT CK_Student GOSQL Server 2005数据库应用项目教程任务3 :默认值的实现1.默认值的概念 与在约束中介绍的DEFAULT约束类似,使用默认值也可以实现当用户在向数据库表中插入新纪录时,如果没有给出某列的输入值,则有系统自动为该列输
14、入默认值的功能。 默认值可以是常量、内置函数或数学表达式。SQL Server 2005数据库应用项目教程任务3 :默认值的实现2. 创建默认值 通常创建并使用默认值的步骤为: 创建一个默认值对象。 创建默认的命令如下: CREATE DEFAULT default_name AS constraint_expressionSQL Server 2005数据库应用项目教程任务3 :默认值的实现将其捆绑到列或用户自定义数据类型上。 绑定默认值的命令如下: EXEC sp_bindefault default_name, table_name.column_name SQL Server 2005
15、数据库应用项目教程任务3 :默认值的实现3.删除默认值通常删除默认值的步骤为:解除默认值捆绑的列或用户自定义数据类型。解除绑定默认值的命令如下:EXEC sp_unbindefault table_name.column_name 删除该默认值。具体的命令语句如下:DROP DEFAULT default_nameSQL Server 2005数据库应用项目教程任务4 :规则的实现1.规则的概念 规则也是实现数据完整性的方法之一,其作用与CHECK约束的部分功能相同。规则可以被绑定到一个列或者用户定义数据类型上,它提供了一种加强列或用户定义数据类型域约束的机制。当其被绑定到列或用户定义的数据类
16、型上时,用来指定允许输入到列中的数据,即当用户向表中插入数据时,用来指定该列接受数据值的范围。同时,规则与默认一样在数据库中只需要定义一次,就可以被多次应用。SQL Server 2005数据库应用项目教程任务4 :规则的实现2. 创建规则 和默认值类似,规则创建后,需要将其捆绑到列上或用户自定义数据类型上。 创建规则的命令如下: CREATE RULE rule_name AS constraint_expression 捆绑规则的命令语句如下: EXEC sp_bindrule rule_name, table_name.column_name SQL Server 2005数据库应用项目
17、教程任务4 :规则的实现 如果在列或数据类型上已经捆绑了规则,那么当再次向它们捆绑规则时,旧规则将自动被新规则覆盖,而不会捆绑多条规则。 捆绑规则可以使用系统存储过程sp_bindrule,解除规则的相关绑定可以使用系统存储过程sp_unbindrule。SQL Server 2005数据库应用项目教程任务4 :规则的实现3.删除规则解除规则捆绑的列或用户自定义数据类型。解除绑定默认值的命令如下:EXEC sp_unbindrule table_name.column_name 删除该规则。具体的命令语句如下:DROP Rule rule_nameSQL Server 2005数据库应用项目教
18、程任务5 :用户自定义函数的实现1. 用户自定义函数 为了扩展T- SQL的编程能力,SQL Server 2005除了提供的内部函数外,还允许用户自定义函数。用户可以使用CREATE FUNCTION语句编写自已的函数,以满足特殊需要。用户自定义函数可用传递一个或多个参数,并返回一个简单的数值。SQL Server 2005数据库应用项目教程任务5 :用户自定义函数的实现(1)创建标量用户自定义函数 标量用户自定义函数返回一个简单的数值,如int、char、decimal等,但禁止使用text、ntext、image、cursor和timestamp作为返回的参数。 该函数的函数体被封装在以
19、BEGIN语句开始,END语句结束的范围内。SQL Server 2005数据库应用项目教程任务5 :用户自定义函数的实现其语法格式如下:CREATE FUNCTION owner_name.function_name(parameter_name scalar_parameter_data_type)RETURN scalar_return_data_typeASBEGIN FUNCTION_bodyRETURN scalar_expressionENDSQL Server 2005数据库应用项目教程任务5 :用户自定义函数的实现【例】创建一个自定义函数,返回特定课程的平均成绩。USE SC
20、DBGOCREATE FUNCTION AvgGrade_SC(CourseID Varchar(20)RETURNS FLOATASBEGINDECLARE AVG_Grade FLOATSET AVG_Grade=(SELECT AVG(Grade)FROM SCWHERE CourseID=CourseID)RETURN AVG_GradeENDSQL Server 2005数据库应用项目教程任务5 :用户自定义函数的实现(2)创建直接表值用户定义函数 表值函数返回一个Table型数据,对直接表值用户定义函数而言,返回的结果只是一系列表值,没有明确的函数体。该表是SELECT语句的结果集
21、。 其语法格式为:CREATE FUNCTION owner_name.function_name(parameter_name scalar_parameter_data_type)RETURN TABLEASRETURN (select_statement)SQL Server 2005数据库应用项目教程任务5 :用户自定义函数的实现【例】创建一个函数,要求返回属于同一个班级的学生的基本信息。在SQL Server ManagementStudio查询编辑器中运行以下代码:USE SCDBGOCREATE FUNCTION 学生信息(班级号 Varchar(20)RETURNS TABLE
22、ASRETURN (SELECT * FROM Student WHERE ClassID=班级号)SQL Server 2005数据库应用项目教程项目项目2: SCDB中索引的创建与管理中索引的创建与管理【任务描述任务描述】 数据库中的索引与书籍中的目录类似,在一本书中,利用目录可以快速查找到所需要的信息,无须阅读整本书,在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需要的数据。当创建数据库并优化其性能时,应该为数据查询所使用表的列创建索引,建立索引后,SQL Server 2005会根据索引的有序排列,通过高效的查找算法找到相关数据。因此,对表建立索引,可以加快数据的
23、查询速度和减少系统的响应时间。SQL Server 2005数据库应用项目教程项目项目2: SCDB中索引的创建与管理中索引的创建与管理【任务目标任务目标】 了解索引的基础知识;掌握创建索引的方法;学会管理和维护索引。SQL Server 2005数据库应用项目教程任务1:了解索引的基础知识1.索引概述 索引与目录类似,如果想快速查找而不是逐页查找指定的内容,可以通过目录中章节的页号找到其对应的内容。类似地,索引通过记录表中的关键值指向表中的记录,这样数据库引擎就不用扫描整个表而定位到相关的记录。SQL Server 2005数据库应用项目教程任务1:了解索引的基础知识1.索引概述 SQL S
24、erver中一个表的存储是由数据页和索引页两个部分组成的。数据页用来存放除了文本和图像数据以外的所有与表的某一行相关的数据,索引页包含组成特定索引的列中的数据。 SQL Server 2005数据库应用项目教程任务1:了解索引的基础知识2.索引的作用 索引是以表列为基础的数据库对象,它保存着表中排序的索引列,并且记录了索引列在数据表中的物理存储位置,实现了表中数据的逻辑排序,其主要目的是提高SQL Server系统的性能,加快数据的查询速度和减少系统的响应时间。SQL Server 2005数据库应用项目教程任务1:了解索引的基础知识3. 建立索引的原则一般来说,适合在这些列上创建索引:(1)
25、 在经常需要搜索的列上创建索引,可以加快搜索的速度。(2) 在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构。(3) 在经常用在连接的列上创建索引,这些列主要是一些外键,可以加快连接的速度。(4) 在经常使用在WHERE子句中的列上创建索引,加快条件的判断速度。(5) 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。(6) 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。SQL Server 2005数据库应用项目教程任务1:了解索引的基础知识4. 索引的分类 在Microsoft SQL Ser
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 其它 对象 创建 管理 课程

限制150内