实验四 表约束和索引管理文档格式.docx

上传人:b****6 文档编号:20646163 上传时间:2023-01-24 格式:DOCX 页数:19 大小:1.05MB
下载 相关 举报
实验四 表约束和索引管理文档格式.docx_第1页
第1页 / 共19页
实验四 表约束和索引管理文档格式.docx_第2页
第2页 / 共19页
实验四 表约束和索引管理文档格式.docx_第3页
第3页 / 共19页
实验四 表约束和索引管理文档格式.docx_第4页
第4页 / 共19页
实验四 表约束和索引管理文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验四 表约束和索引管理文档格式.docx

《实验四 表约束和索引管理文档格式.docx》由会员分享,可在线阅读,更多相关《实验四 表约束和索引管理文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

实验四 表约束和索引管理文档格式.docx

表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。

这样的一列或多列称为表的主键,它不能是空值。

注意:

一个表只能有一个主键约束,并且SQLServer为主键约束自动创建索引。

创建主键约束需要在表的设计窗口。

在SQLServer管理平台中选中要创建主键约束的表,按右键,在弹出菜单中选择【设计】,运行界面如下:

图4-1表设计窗口

在图4-1中正确选择要建立主键约束的列,如Sno,按右键,在弹出菜单中选择【设置主键】命令或在工具栏上点击“钥匙”按钮,主键约束就创建完毕!

点击设置主键后,如下所示:

图4-2在表中定义主键

此时,主键列的旁边会出现一个小钥匙的标志,而且允许空选项被自动取消,因为主键列必须输入数据,不允许为空。

在该设计窗口点击右键,在弹出菜单中选择【索引/键】命令,运行界面如下:

图4-3定义和管理主键

可以看到:

SQLServer为主键约束自动创建索引PK_Stu_InfoTable,PK即为PRIMARYKEY的缩写,后跟下划线和所在的表名。

在此窗口可以修改主键名称,选择定义主键的列和顺序。

单击【删除】,可以删除主键。

下面我们来验证一下主键列必须取唯一值,Stu_InfoTable中已有如下记录:

图4-4Stu_InfoTable中现有记录

我们添加一条“20106”的学生信息并输入下一行时,有出错信息如下图:

图4-5错误提醒窗口

按下【确定】按钮,记录添加不成功,Stu_InfoTable中仍然只有如图3的记录。

1.2唯一性(UNIQUE)约束

唯一性约束可以保证除主键外的一个或多个列的数据唯一性,以防止在列中输入重复的值。

在打开如图4-3的窗口后,单击【添加】添加一个以IX_开头的键。

在右侧的属性列表中,将“是唯一的”设置为“是”,可以创建唯一性约束。

如下图所示:

图4-6创建唯一性约束

单击上图中“列”属性后面的“…”,打开“选择索引列”窗口,如下图所示。

图4-7选择索引列

若选择“Number”,单击“确定”后,此唯一性确定的列同样不能存在重复的数据。

验证如下:

图4-8

1.3索引管理

索引是对表中的数据提供逻辑排序,可以提高数据的访问速度。

它包括:

唯一索引和聚集索引。

通常情况下,只有当经常查询索引列中的数据时,才需要在表上创建索引。

创建索引步骤:

右键单击要创建索引的表例如Stu_InfoTable,单击【设计】,再右键单击表设计器选择【索引/键】,运行界面如下图:

图4-9创建索引

单击“添加”按钮,在“列”属性下选择要创建索引的列。

可以选择多达16列。

为获得最佳性能,最好只选择一列或两列。

对所选列,可以指出索引是按升序还是降序。

如果要创建唯一索引,则在“是唯一的”属性中选择“是”。

设置完成后,单击“确定”按钮。

若不选择“是唯一的”,则姓名列可以含同名的学生。

此时,Name列是唯一的,验证如下:

图4-10

唯一索引可以确保索引列不包含重复的值。

而聚集索引通常可以加快UPDATE和DELETE操作的速度,因为这两个操作需要读取大量的数据。

若要修改或删除索引,则可以在打开图4-10窗口后,直接在右侧属性列表中修改索引信息,或选中要删除的索引点击“删除”即可。

2.域完整性:

检查(CHECK)约束

CHECK约束:

用来限制输入到列中的值,是一个逻辑表达式。

我们新建一个名为Stu_GradeTable的表,记录如下:

图4-11Stu_GradeTable记录表

例如,Stu_GradeTable中Grade列要求(大于或等于0)且(小于或等于100)的值,操作步骤如下:

(1)选择要建立CHECK约束的表,在图4-1表设计器中,点击右键,在弹出菜单中选择【CHECK约束】命令,运行界面如图4-12。

(2)在此窗口中点击【添加】按钮,如图4-12填写。

表设计器会缺省给出一个约束名,如CK-Stu_GradeTable,CK就是CHECK的缩写,后面加上建立约束的表名。

若要更改这个名称,需编辑“标识名称”文本框的内容。

图4-12设置CHECK约束

(3)点击【关闭】,CHECK约束设置完成。

下面我们来验证一下CHECK约束的作用。

在Stu_GradeTable中插入如下记录.保存新记录时,就会有出错提示,提示插入的数据违反了CHECK约束,出错信息如下图所示:

 

图4-13违反检查约束

按下【确定】按钮,记录添加不成功,要保存Stu_GradeTable,必须删除不合要求的记录。

3.参照完整性:

外键约束

外键约束的主要目的是控制存储在外键表中的数据,还可以控制对主键表中数据的修改。

例如,如果在Stu_InfoTable中删除(或更改)一个学生,而这个学生的Number在Stu_GradeTable中使用了,则这两个表之间关联的完整性将被破坏。

外键约束防止这种情况的发生。

又如果在Stu_GradeTable中插入(或更改)一条学生成绩记录,而这个学生的Number在Stu_InfoTable中不存在,外键约束也防止这种情况的发生。

下面说明建立外键约束的步骤:

(1)右键单击表Stu_GradeTable,在弹出菜单中选择【设计表】,打开后再右键单击【关系】命令,点击【添加】按钮后系统会自动生成一个关系,以FK_开头,运行界面如下:

图4-14外键关系对话框

(2)单击“表和列规范”后面的“…”,打开“表和列”对话框,从“主键表”的下拉列表中选择Stu_InfoTable作为关系主键方的表,在下面的网格中选择分配给该表作主键的列Number;

“外键表”默认为此时打开的表Stu_GradeTable,可以在它下面的网格中选择分配给该表作外键的列Number。

如下图所示

图4-15“表和列”对话框

设置完成后,外键关系对话框如图4-13会缺省给出一个关系名,如FK_Stu_GradeTable_Stu_InfoTable,FK就是FOREIGNKEY的缩写,后面加上建立关系的两张表。

(3)点击【关闭】按钮,外键约束设置完成。

下面我们来验证一下外键约束的作用。

如果我们想在Stu_GradeTable中插入一条并不存在的学生“20106”的成绩记录,编辑下一行时就会出现错误提示,提示插入的数据违反了外键约束.

四、上机练习

1.对实验三所做的图书数据库BookSys中的表“图书信息”中的“图书编号”列做主键约束,并验证效果。

图1在表中定义tusbh为主键

下面我们来验证一下主键列必须取唯一值,在BookSys-dbo.tsxx中已有如下记录:

图2BookSys-dbo.tsxx中现有纪录

我们添加一条“10010002”的图书编号并输入下一行时,如图:

图3错误提醒窗口

2.对表“读者信息”中的“身份证号”列做唯一性约束,并验证效果。

在“读者信息”表中,点击右键,打开索引/键窗口,将“是唯一的”设置为“是”,可以创建唯一性约束。

将“列”属性后面的“…”,打开“选择索引列”窗口,在列名中选择shenfenz,单击确定即可。

图4创建唯一性约束

唯一性验证如下:

在读者信息表中输入读者编号为00001003一列信息(使身份证列有重复数据),换下一行时出现如下图:

图5错误提醒窗口

3.对表“图书信息”中的“价格”列做检查约束:

价格只能大于等于0或小于等于200,完成后验证约束的效果。

(1)在“图书信息”表中点击右键,在弹出菜单中选择【CHECK约束】命令,出现一窗口,在此窗口中点击【添加】按钮,在表达式中输入jiag>

=0andjiag<

=200

图6创建检查约束

点击关闭按钮,CHECK约束设置完成。

下面来验CHECK约束的作用。

在原表中插入如下记录:

10010003,使其价格大于200,出现错误提示窗口:

图7错误提示

4.对表“图书信息”和“借阅信息”中的“图书编号”做外键约束,并验证约束后的效果。

(1)右键单击表”图书信息“,在弹出菜单中选择【设计】,打开后再右键单击【关系】命令,点击【添加】按钮后系统会自动生成一个关系,以FK_开头

(2)单击“表和列规范”后面的“…”,打开“表和列”对话框,从“主键表”的下拉列表中选择“借阅信息“作为关系主键方的表,在下面的网格中选择分配给该表作主键的列图书编号;

“外键表”默认为此时打开的表“图书信息“,可以在它下面的网格中选择分配给该表作外键的列图书编号。

(3)点击【确定】按钮,出现如下提示:

解决方法:

将“图书信息”表和“借阅信息”表中的图书编号设置成唯一性,点确定按钮之后,外键约束设置成功。

在图书信息中插入一条并不存在的图书编号为“10010003”的记录,编辑下一行时就会出现错误提示,提示插入的数据违反了外键约束,出错信息如下图所示:

5.对表“读者信息”和“借阅信息”中的“读者编号”做外键约束,并验证约束后的效果。

同样的,先将“读者信息”和“借阅信息”两表中的读者编号设置成唯一性。

然后做外键约束如下:

验证外键约束作用如下:

在读者信息中插入一条并不存在的读者编号为“0001003”的记录,编辑下一行时就会出现错误提示,提示插入的数据违反了外键约束,出错信息如下图所示:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1