第3章数据库及表的操作_第1页
第3章数据库及表的操作_第2页
第3章数据库及表的操作_第3页
第3章数据库及表的操作_第4页
第3章数据库及表的操作_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 数据库及表的操作 3.1 数据库简介 3.2 创建及修改数据库 3.3 管理数据库表 3.4 数据完整性规则第3章数据库及表的操作3.1 数据库简介 SQL Server 2005的数据库包含表、视图、的数据库包含表、视图、索引存储过程和触发器等对象。数据库提索引存储过程和触发器等对象。数据库提供对这些对象的管理。在对象资源管理器供对这些对象的管理。在对象资源管理器中,展开数据库树状菜单,可以看到当前中,展开数据库树状菜单,可以看到当前系统中所建立的数据库,操作如图系统中所建立的数据库,操作如图3.1所示。所示。 图3.1 数据库逻辑组成 3.1 数据库简介SQL Server 200

2、5包含以下系统数据库: 1master库 2model库 3msdb库 4temp库 3.1 数据库简介master库库 在SQL Server 2005中,master库用来记录与数据库有关的系统信息,包括登陆信息、系统配置、数据库错误信息、SQL Server初始化信息和系统中其他系统数据库和用户数据库的相关信息,包括其主文件的存放位置等。因此在master库内不能建立索引,而且对于master库的任何修改都可能影响到系统的运行。 3.1 数据库简介model库库 Model数据库是SQL Server 2005中的模板数据库,Model数据库包含有19个系统表和一些视图,其中包含的各个系

3、统表为每个用户数据库所共享。创建一个用户数据库时,系统会将Model数据库中的内容复制到新建的数据库中去,可以说,任何由用户创建的数据库其实就是model库的副本。 3.1 数据库简介 msdb数据库供SQL Server代理程序调度警报和作业以及记录各种操作,同时存储了所有备份历史。SQL Server Agent可能会使用这个库。 msdb库3.1 数据库简介 Tempdb数据库用作系统的临时存储空间,其主要作用有:存储用户建立的临时表和临时存储过程;存储用户说明的全局变量值;为数据排序创建临时表;存储用户利用游标说明所筛选出来的数据。当退出SQL Server时,用户在Tempdb数据库

4、中建立的所有对象都将被删除。每次SQL Server启动时Tempdb数据库都将被重建,回复到系统设定的初始状态,所以永远不要在tempdb数据库建立需要永久保存的表。 temp库3.2 创建及修改数据库创建及修改数据库 1文件与文件组 在SQL Server中数据库是由数据库文件和事务日志文件组成的。一个数据库至少应包含一个数据库文件和一个事务日志文件。3.2.1 创建数据库创建数据库3.2 创建及修改数据库创建及修改数据库 (1)数据库文件 数据库文件是存放数据库数据和数据库对象的文件。一个数据库可以有一个或多个数据库文件,一个数据库文件只属于一个数据库。当有多个数据库文件时,有一个文件被

5、定义为主数据库文件,扩展名为mdf,它用来存储数据库的启动信息,主文件还用于存储部分或全部数据,每个数据库只能有一个主数据库文件。其他数据库文件被称为次数据库文件,扩展名为ndf,用来存储那些不能存储在主数据库文件中的数据。如果主数据库文件足够大,能够容纳数据库中的所有数据,则该数据库不需要次数据库文件。但有些数据库可能非常大,因此需要多个次数据库文件,或可在不同的硬盘中存储次数据库文件,这样可以同时对几个硬盘做数据存取,提高了数据处理的效率。对于服务器型的计算机尤为有用。 3.2 创建及修改数据库创建及修改数据库 (2)事务日志文件 事务日志文件包含用于恢复数据库的日志信息。一个数据库可以有

6、一个或多个事务日志文件。 SQL Server中采用提前写方式的事务,即对数据库的修改先写入事务日志中,再写入数据库。其具体操作是,系统先将更改操作写入事务日志中,再更改存储在计算机缓存中的数据,为了提高执行效率,此更改不会立即写到硬盘中的数据库,而是由系统以固定的时间间隔将更改过的数据批量写入硬盘。SQL Server有个特点,它在执行数据更改时会设置一个开始点和一个结束点,如果尚未到达结束点就因某种原因使操作中断,则在SQL Server重新启动时会自动恢复已修改的数据,使其返回未被修改的状态。由此可见,当数据库破坏时可以用事务日志恢复数据库内容。 3.2 创建及修改数据库创建及修改数据库

7、 (3)文件组 文件组是将多个数据库文件集合起来形成的一个整体。每个文件组有一个组名。与数据库文件一样,文件组也分为主文件组和次文件组。一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。主文件组中包含了所有的系统表。当建立数据库时,主文件组包括主数据库文件和未指定组的其他文件。在次文件组中可以指定一个默认文件组,那么在创建数据库对象时如果没有指定将其放在哪一个文件组中,就会将它放在默认文件组中。如果没有指定默认文件组,则主文件组为默认文件组。但事务日志文件不属于任何文件组。 3.2 创建及修改数据库创建及修改数据库 2创建数据库 【例【例3.1】在对象资源管理器中建立ShowD

8、B数据库3.2 创建及修改数据库创建及修改数据库 登陆到Microsoft SQL Server Management Studio。 在对象资源管理器中的数据库项上单击右键,选择“新建数据库(N)”, 在选择“新建数据库(N)”选项后,会出现新建数据库窗口。用户需要输入新建数据库所需的各项参数,如数据库名称、所有者和文件路径等,如果用户不需要更改指定特殊的文件路径,可以使用系统地默认值。 3.2 创建及修改数据库创建及修改数据库 系统默认的数据文件大小为3M,但当存入大量数据,使数据文件超过初始设定值时,系统将按照“自动增长”一栏中设定的数值对数据文件的规模进行扩大。所以如果数据量较大,且一

9、次写入的数据很多,则可以考虑对“自动增长”一项进行修改。 默认情况下,系统自动地使用指定的数据库名作为前缀创建主数据库文件和日志文件,例如:Show_DB.mdf和Show_DB _Log.ldf。3.2 创建及修改数据库创建及修改数据库 默认情况下,系统认为数据库文件只有一个,且名称为用户指定的数据库名。但如果日常的数据量非常大,以致可能超过某一个硬盘分区的容量,此时,需要建立辅助数据库文件,将数据保存在不同的硬盘分区的不同数据文件中,以减轻某一个硬盘分区的压力。在“新建数据库窗口”中点击“添加”按钮,为新建的辅助数据库文件命名,如Show_DB 1.mdf 。3.2 创建及修改数据库创建及

10、修改数据库 如果要修改文件的分组,可以点击文件组栏,在下拉菜单中选择合适的分组。 在“新建数据库窗口”中,选项页可以设置排序规则、恢复模式、兼容级别、恢复选项、游标选项、杂项、状态选项和自动选项等 。 在“新建数据库窗口”的“文件组选”选项页中,可以设置或添加数据库文件和文件组的属性和默认值。 当所有参数设置完毕后,点击“确定”按钮,就可以创建所定义的数据库。 3.2 创建及修改数据库创建及修改数据库1修改数据库选项【例【例3.2】修改ShowDB数据库的各项设置。 3.2.2 修改数据库修改数据库 3.2 创建及修改数据库创建及修改数据库 登陆到Microsoft SQL Server Ma

11、nagement Studio,在要修改的数据库名上单击鼠标左键,在弹出的快捷菜单上选择“属性”一项。 在弹出的数据库属性窗口中,列出了该数据库之前的所有设置参数。 在数据库属性窗口左侧的选项页中,列出了可以修改和设置的一些选项。如果需要为数据库添加新的辅助数据库文,可以选择“文件”项。在该页中参数设置方式与建立数据库时的相关操作相同。 3.2 创建及修改数据库创建及修改数据库 当需要修改文件组信息时,可以选择“文件组”选项进行设置。如图3.13所示。该页中参数设置方式与建立数据库时的相关操作相同 点击“选项页”中的“选项”一栏,可以对数据库的排序规则、恢复模式、兼容级别、恢复、游标、杂项、状

12、态和自动选项等进行重新设置 选项页中的“权限”选项可以显示当前数据库的使用权限。3.2 创建及修改数据库创建及修改数据库 选项页中的“扩展属性”选项中,可以添加文本,输入掩码和格式规则等,作为数据库对象或库本身的属性。 选项页中的“事务日志传送”选项可以查看当前数据库的日志传送配置信息,以供用户设置事务日志备份、辅助数据库和监视服务器。 3.2 创建及修改数据库创建及修改数据库2收缩分配给数据库的数据或事务日志空间 登陆到Microsoft SQL Server Management Studio,展开要修改的数据库所在的服务器实例。 展开“数据库”菜单,右键单击要收缩大小的数据库,指向“任务

13、”选项,在弹出的二级菜单中选择“收缩”,然后单击“数据库”命令,打开“收缩数据库”对话框,进行相应的设置。 3.2 创建及修改数据库创建及修改数据库3附加新数据库或分离未使用的数据库 SQL Server 2005为使用者提供了数据库的分离和附加功能,使用户能方便的将自己所建立的数据库移至其他的服务器。这里以Show_DB为例,说明附加新数据库和分离未使用的数据库的操作过程。 3.2 创建及修改数据库创建及修改数据库(1)分离数据库 分离数据库是指将某一个库从SQL Server实例中删除,但仍然将数据文件保留在计算机硬盘上。可以将这些保留文件附加到其他SQL Server实例中,甚至包括分离

14、该数据库的服务器。 【例【例3.3】将Show_DB数据库从服务器分离出去。 3.2 创建及修改数据库创建及修改数据库 登陆到Microsoft SQL Server Management Studio,展开要修改的数据库所在的服务器实例。 展开“数据库”菜单,右击Show_DB,选择“任务”中的“分离(D).”命令,打开“分离数据库”对话框。 可以根据具体情况,选择“删除连接”、“更新统计信息”和“保留全文目录”选项。 点击“确定”按钮,将Show_DB从SQL Server中分离出来。 此时,回到Microsoft SQL Server Management Studio,可以从对象资源管

15、理器中看到,Show_DB数据库已经从数据库树形菜单中消失了。 3.2 创建及修改数据库创建及修改数据库(2)附加数据库 当将某个数据库从服务器上分离出去之后,或者需要在服务器上运行别的数据库中已建立的数据库,需要进行附加数据库的操作,而不能仅仅将数据库的文件复制到SQL Server的数据目录。附加数据库的过程如例3.4所示。【例【例3.4】将例3.3中分离出去的数据库Show_DB用附加数据库的方式添加到数据库服务器内。 3.2 创建及修改数据库创建及修改数据库 登陆到Microsoft SQL Server Management Studio,右键点击“数据库”,选择“附加(A).”命令

16、,打开“附加数据库”对话框 点击“要附加的数据库”一栏下的“添加”按钮,弹出“定位数据库文件”对话框,如图3.20所示。在对话框中选择要附加的数据库文件(一般是.mdf文件),点击“确定”。 在选择了要附加的数据库文件后,在“附加数据库”对话框中会出现该数据库的文件信息。点击“确定”按钮,将Show_DB数据库附加到SQL Server中。 3.2 创建及修改数据库创建及修改数据库 当某一个数据库设计不当或用户不再使用时,可以将该数据库从服务器上删除,以释放其所占用的资源。删除数据库一定要慎重,因为删除数据库后,与此数据库有关联的数据库文件和事务日志文件都会被删除,存储在系统数据库中的关于该数

17、据库的所有信息也会被删除。 【例【例3.5】删除数据库Show_DB 3.2.3 删除数据库删除数据库 3.2 创建及修改数据库创建及修改数据库 登陆到Microsoft SQL Server Management Studio,展开“数据库”菜单,右键单击要删除的数据库,选择“删除(D).”命令。 在弹出的“删除对象”窗口中,对删除操作进行设置,包括“删除数据库备份和还原历史记录信息”及“关闭现有连接”选项。然后点击“确定”按钮。当系统显示成功后,Show_DB数据库便从“数据库”菜单下消失了。 3.3 管理数据库表管理数据库表 表是包含数据库中所有数据的数据库对象。在使用数据库的过程中,接

18、触最多的就是数据库中的表。表是数据存储的地方,是数据库中最重要的部分。在SQL Server 2005中,数据通常存储在永久表中。表存储在数据库文件中,如果用户有相应的权限都可以对之进行操作,所以,管理好表也就管理好了数据库。3.3 管理数据库表管理数据库表 表是由行和列组成的。每一行代表惟一的一条记录,每一列代表记录中的一个域。创建表的过程主要就是定义表的列的过程,在SQL Server 2005中每个表至多可以定义1024列,每个数据库中最多可以创建200万个表。表和列的命名要遵守标识符的规则,在特定表中必须是惟一的,但同一数据库中的不同表可以使用相同的列名。必须为每一列指定数据类型。 3

19、.3.1 创建数据库表创建数据库表 3.3 管理数据库表管理数据库表1用表设计器创建表 登陆到Microsoft SQL Server Management Studio,展开“数据库”菜单,选择要建表的数据库。 展开该数据库,右键单击“表”图标,弹出快捷菜单。选择“新建表(N).”命令;或者在已经建好的表上单击右键,弹出快捷菜单,选择“新建表(N).”命令。 在弹出的表设计器中建立表结构。 3.3 管理数据库表管理数据库表 输入列名。对于所添加的每一列,都有一新行出现在表设计器的上半部分。在该行内,可以编辑列名、数据类型、精度、空否等列的基本属性。可以在表设计器的列属性部分编辑列的其他属性。

20、只需单击表设计器上半部分的某行,然后添加或编辑出现在下半部分内的属性。 设置“允许空”选项,如果表的某一列被指定具有允许空属性,那么就允许在插入数据时省略该列的值。反之,如果表的某一列被指定具有不允许空属性,那么就不允许在没有指定列默认值的情况下插入省略该列值的数据行。在SQL Server中列的默认属性是不允许空。3.3 管理数据库表管理数据库表 输入完成后,单击“保存”图表,将弹出“输入表名”对话框。将表名设定为PeopleSolution,然后单击“确定”按钮。 关闭“新建表”窗口,可以看到PeopleSolution已经出现在数据库中。 3.3 管理数据库表管理数据库表 【例例3.6】

21、用Microsoft SQL Server Management Studio建立TeacherTable表。3.3 管理数据库表管理数据库表打开表设计器,输入以上字段及类型,生成该表 3.3 管理数据库表管理数据库表2在数据库关系图中创建表 登陆到Microsoft SQL Server Management Studio,展开“数据库”菜单,选择要建表的数据库。 展开该数据库,选择数据库关系图选项,如果没有创建关系图,则需要创建新的数据库关系图;如果已经建立了关系图,则可以进入关系图窗口。 此时,在工具栏上会出现新建图标,该图标表示新建表。该图标一般位于工具栏上第二行最左边,当鼠标移到该图

22、标上时,会有提示“新建表”。 3.3 管理数据库表管理数据库表 点击“新建表”图标,会显示输入框,输入表名后,点击“确定”。会弹出表设计器。 编辑完成后,右击新建表所在的窗口,选择“保存选择”命令,打开“保存”对话框,提示用户是否将表保存到数据库中。单击“是”按钮,完成保存。 关闭关系图窗口,在弹出的对话框中选择“是”。 3.3 管理数据库表管理数据库表 约束是Microsoft SQL Server提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。在SQL Server中有5种约束,主码约束、外码约束、惟一性约束、检查约束和默认约束。 3.3.2 创建和使用

23、约束创建和使用约束 3.3 管理数据库表管理数据库表1主码约束(PRIMARY KEY) 主码约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主码,且IMAGE和TEXT类型的列不能被指定为主码,也不允许指定主码列有空属性。 3.3 管理数据库表管理数据库表使用企业管理器创建PRIMARY KEY约束: 展开服务器实例,右键单击要建立主键的表,选择“修改(Y).”命令。进入表设计器。这里以刚才建立的PeopleSolution表为例。 在表设计器窗口中单击要设置主键的字段,然后在工具栏上单击“设置主键”按钮,该字段左边的选择连栏将出现一个钥匙

24、标记,表明该字段是表的主键字段。 单击“保存”按钮,将所做的修改保存到数据库中,关闭表设计器窗口。 3.3 管理数据库表管理数据库表2外码约束(FOREIGN KEY) 外码约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其他表中的主码定义相同时,就可以将这些列或列的组合定义为外码,并设定它与哪个表中哪些列相关联。这样,当在定义主码约束的表中更新列值时,其他表中有与之相关联的外码约束的表中的外码列也将被相应地做相同的更新。外码约束的作用还体现在,当向含有外码的表插入数据时,如果与之相关联的表的列中无与插入的外码列值相同的值时,系统会拒绝插入数据。与主码相同,不能使用一个定义为TEXT

25、或IMAGE数据类型的列创建外码。外码最多由16个列组成。 3.3 管理数据库表管理数据库表在SQL Server中,使用关系图来建立外键 展开要建立关系图的数据库,在“数据库关系图”项上单击右键,选择“新建数据库关系图(N)”命令。 在弹出的 “添加表”对话框中选择要建立主-外键关系的表,例如图中DepartmentTable表,点击“添加”按钮,系统会将该表添加进关系图窗口。该操作可反复进行多次,直到所有要建立外键关系的表全部添加入关系图界面为止。然后点击“关闭”按钮关闭“添加表”对话框,进行下一步的设置。 3.3 管理数据库表管理数据库表 用鼠标指针指向主键表中主键字段左边的选择栏,然后

26、按下鼠标左键并向外键表中的外键字段处拖动。当拖动到目标列时,会弹出对话框,给出该外键关系中,主键和外键分别所在的表的表名,以及所对应的列的列名。系统默认的外键名为FK加主、外键所在表的表名,也可以自定义该外键的名称。当所有设定正确无误后,点击“确定”按钮,进行下一步。 3.3 管理数据库表管理数据库表 然后在弹出的“外键关系”对话框中设置外键相关参数 此时在主键和外部键之间出现了一个带钥匙的连线,表明这两个表已经关联起来。其中钥匙一方指向外键所对应的主键。当点击保存按钮,出现保存对话框。填写关系图名称后,点击“确定”按钮。 接下来弹出的保存对话框中,显示了该外键关系,包括所在的表。点击“是”,

27、系统将把该外键关系保存在数据库中。 3.3 管理数据库表管理数据库表3惟一性约束(UNIQUE) 惟一性约束指定一个或多个列的组合的值具有惟一性,以防止在列中输入重复的值。惟一性约束指定的列可以有空属性。由于主码值是具有惟一性的,因此主码列不能再设定惟一性约束。惟一性约束最多由16个列组成。 【例例3.8】为Department表中的ManagerID字段建立惟一约束。 3.3 管理数据库表管理数据库表 在对象资源管理器中,右键单击要创建惟一约束的表,选择“修改(Y).”命令。进入表编辑器。 在需要建立惟一约束的列上单击右键,选择“索引/键(I).”命令。弹出“索引/健”对话框。 点击“添加”

28、按钮,生成一条新约束,在“是惟一的”一栏中选择“是” 3.3 管理数据库表管理数据库表 单击列一栏,会出现选择按钮,单击该按钮,弹出索引列对话框。在对话框中选择需要建惟一约束的列。然后点击“确定”按钮。 如果需要在执行SQL语句期间,忽略为该列输入重复值的SQL语句,而不返回错误,需要在“忽略重复键”一栏中选择“是”。 当所有设置完毕后,点击“关闭”按钮,该惟一约束设置完毕。 3.3 管理数据库表管理数据库表4检查约束(CHECK) 检查约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。 对计算列不能作除检查约束外的任何约束。 【例例3.9】对DepartmentT

29、able表中的DepartmentID字段建立CHECK约束,使该字段值控制在0到20范围内。 3.3 管理数据库表管理数据库表 在对象资源管理器中,右键单击要创建惟一约束的表,选择“修改(Y).”命令。进入表编辑器。 在需要建立惟一约束的列上单击右键,选择“CHECK约束(O).”命令,弹出“CHECK约束”对话框 单击“表达式”一栏,点击随后出现的选择按钮,在弹出的“CHECK约束表达式”对话框中写入为该列设计的约束表达式。然后点击“确定”按钮。 然后点击“CHECK约束”对话框的“关闭”键,关闭该对话框,CHECK约束定义完毕。 3.3 管理数据库表管理数据库表5默认约束(DEFAULT

30、) 默认约束通过定义列的默认值或使用数据库的默认值对象绑定表的列,来指定列的默认值。SQL Server推荐使用默认约束,而不使用定义默认值的方式来指定列的默认值。不能在创建表时定义默认约束,只能向已经创建好的表中添加默认约束。 使用企业管理器创建DEFAULT约束: 在Microsoft SQL Server Management Studio中,利用表设计窗口创建或修改表时,如果要在某个字段设置默认值,可以单击该字段,然后在窗口下部的“默认值”单元格中输入一个数据作为其默认值。 3.3 管理数据库表管理数据库表6列约束和表约束 对于数据库来说,约束又分为列约束和表约束。列约束作为列定义的一

31、部分只作用于此列本身,表约束作为表定义的一部分可以作用于多个列。 3.3 管理数据库表管理数据库表 除了使用系统提供的数据类型外,用户还可以根据需要用自定义的数据类型来定义表的列或声明变量。 3.3.3 自定义数据类型自定义数据类型 3.3 管理数据库表管理数据库表1在Management Studio中创建用户自定义数据类型: 在对象资源管理器中,选择要建立用户自定义数据类型的数据库,这里以MyDB为例,右键单击“用户自定义数据类型(N).”菜单。 打开“用户定义数据类型属性”对话框,输入要定义的数据类型的名称、继承的系统数据类型、是否允许空值等属性,单击“确定”按钮,完成设置。例如:名称a

32、uthname、继承的系统数据类型char、长度20。 3.3 管理数据库表管理数据库表2在Management Studio中删除用户自定义数据类型: 在对象资源管理器中,选择要删除用户自定义数据类型的数据库,这里以MyDB为例,单击“用户自定义数据类型(N).”菜单,会展开所有用户自定义数据类型;同时,这些用户自定义数据类型也会在右方的摘要列表中会给出。 选择要删除的数据类型,单击鼠标右键,选择“删除”命令,弹出“除去对象”对话框。 点击“确定”按钮,系统会将该数据类型从数据库中删除。 3.3 管理数据库表管理数据库表 当表创建好后,可能根据需要对表的列、约束等属性进行添加、删除或修改,这

33、就需要修改表结构。 3.3.4 修改表修改表3.3 管理数据库表管理数据库表在Microsoft SQL Server Management Studio中修改表的步骤如下: 选择要修改表所在的数据库,点击“表”菜单,会列出所有系统表和当前用户定义的表;或者也可以在右侧的摘要栏中列出这些表。 选择要修改的表,单击右键,选择“修改(Y).”命令,将进入表设计器界面。 在对话框中可以对表进行修改。包括修改各个字段的定义、添加新字段、删除现有字段及设置或取消主键约束。 3.3 管理数据库表管理数据库表 在Microsoft SQL Server Management Studio中查看表的属性步骤如

34、下: 选择要修改表所在的数据库,点击“表”菜单,会列出所有系统表和当前用户定义的表;或者也可以在右侧的摘要栏中列出这些表。 选择要修改的表,单击右键,选择“属性(R).”命令,将进入表属性对话框。 在表的属性对话框中,可以看到表的大部分属性信息。单击“确定”按钮,关闭表属性对话框。 3.3.5 查看表的属性查看表的属性 3.3 管理数据库表管理数据库表 在Microsoft SQL Server Management Studio中删除表的属性步骤如例3.10所示。 【例例3.10】从数据库中删除PeopleSolution表。 3.3.6 删除表删除表 3.3 管理数据库表管理数据库表 选择

35、要修改表所在的数据库,点击“表”菜单,会列出所有系统表和当前用户定义的表;或者也可以在右侧的摘要栏中列出这些表。 选择要修改的表,单击右键,选择“删除(D).”命令,将进入删除对象对话框。 单击“确定”按钮,则删除所选的表。 3.3 管理数据库表管理数据库表1访问表中所有行的内容 选择要访问的表所在的数据库,点击“表”菜单,会列出所有系统表和当前用户定义的表;或者也可以在右侧的摘要栏中列出这些表。 选择要访问的表,单击右键,选择“打开表(O).”命令,将打开访问表内容的窗口。用户还可以添加和修改表中数据。3.3.7 表中数据的访问表中数据的访问 3.3 管理数据库表管理数据库表2访问表中前几行

36、的内容 选择要访问的表所在的数据库,点击“表”菜单,会列出所有系统表和当前用户定义的表;或者也可以在右侧的摘要栏中列出这些表。 选择要访问的表,单击右键,选择“新查询编辑器窗口(N).”命令。 在弹出的脚本编写界面中,书写查询语句,然后点击“执行”按钮,将得到执行结果。 3.4 数据完整性规则数据完整性规则 数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误信息。保证输入的数据符合规定,成为数据库系统,尤其是多用户的关系数据库系统首要关注的问题,数据完整性因此而提出。本节将讲述数据完整性的概念及其在SQL Server中的实现方法。 3.4 数据完整性规则数据完整性规

37、则 数据完整性是指数据的精确性和可靠性。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为4类:实体完整性、域完整性、参照完整性、用户定义的完整性。 3.4.1 数据完整性数据完整性 3.4 数据完整性规则数据完整性规则 1实体完整性 关系数据库中的一个表是由行和列组成的,实体完整性规定表的每一行在表中是惟一的实体。2域完整性 域完整性是指数据库表中的列必须满足某种特定的数据类型或约束。 3.4 数据完整性规则数据完整性规则 3参照完整性 参照完整性是指两个表的主码和外部关键字的数据应对应一致。它确保了有主码的表中对应其他表的外部

38、关键字的行存在,即保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。参照完整性是建立在外部关键字和主码之间或外部关键字和惟一性关键字之间的关系上的。在SQL Server中,参照完整性作用表现在如下几个方面: 禁止在从表中插入包含主表中不存在的关键字的数据行; 禁止会导致从表中的相应值孤立的主表中的外码值改变; 禁止删除在从表中的有对应记录的主表记录。 3.4 数据完整性规则数据完整性规则 4用户定义的完整性 不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足

39、的语义要求。SQL Server提供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们,而不是用应用程序来承担这一功能。其他的完整性类型都支持用户定义的完整性。 3.4 数据完整性规则数据完整性规则 规则就是数据库中对存储在表的列或用户自定义数据类型中的值的规定和限制,规则是单独存储的独立的数据库对象。规则与其作用的表或用户自定义数据类型是相互独立的,即表或用户自定义对象的删除、修改不会对与之相连的规则产生影响。 规则和约束可以同时使用,表的列可以有一个规则及多个约束。规则与约束很相似,相比之下,使用在修改表或创建表命令中的约束是更标准的限制列值的方法,但约束不能直接作用于用户自定义

40、数据类型。 3.4.2 规则规则 3.4 数据完整性规则数据完整性规则 1创建规则和绑定规则 创建规则的SQL语句为CREATE RULE,该语句的语法格式如下:CREATE RULE rule_name AS condition_expression 其中,rule_name指所要创建的规则的名称,该名称必须符合SQL的命名规则。condition_expression是条件表达式。 3.4 数据完整性规则数据完整性规则 【例例3.11】为StudentTable表创建规则,使用户在输入性别数据时,只能输入0或1。 StudentTable表的表结构如下图所示。在StudentTable的S

41、ex列中,以数字0表示男性,数字1表示女性。为了使用户在输入值的时候不输入非0或1的值,建立名为sex_rule的规则,限制用户值的输入范围在0,1中。 3.4 数据完整性规则数据完整性规则 规则建立后,需要将其绑定到数据表的列上或用户自定义数据类型上,才能使规则发挥作用。当向某个列或用户自定义数据类型绑定了规则时,新插入的数据必须符合规则。绑定规则的语法如下:sp_bindrule rule_name, 表名.字段名|用户自定义数据类型名 其中sp_bindrule为系统的存储过程,用于将某个规则绑定到某个列或用户自定义数据类型上;rule_name为要绑定的规则名;表名.字段名|用户自定义

42、数据类型名为绑定的目标。 3.4 数据完整性规则数据完整性规则 仍以StudentTable表为例,将sex_rule与StudentTable的Sex列绑定,其SQL语句如下:sp_bindrule sex_rule,StudentTable.Sex 点后,名为sex_rule的规则就建立成功了。 当选择“属性”命令后,在弹出的列属性对话框中可以看到该列已经与sex_rule规则绑定 3.4 数据完整性规则数据完整性规则 当规则绑定好后,对于该规则的输入必须遵循绑定的规则。向StudentTable表中插入下数据。 3.4 数据完整性规则数据完整性规则 当点击下一行时,由于Sex一栏中填写了不满足规则sex_rule的数据,系统弹出对话框,阻止进行数据提交。但是在该行上一行的数据由于是在绑定规则前输入的,因此虽然数据不符合sex_rule规则,但没有受到该规则的约束。 3.4 数据完整性规则数据完整性规则2查看规则 可以通过Microsoft SQL Server Management Studio查看已定义的规则,其步骤如下: 选择要访问的规则所在的数据库,展开“可编程性”菜单,展开“规则”菜单,会列出所有已定义的规则。 右击要查询的规则,选择“编写规则脚本为(S)”菜单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论