• 沒有找到結果。

Access 数据库案例教程(第二版) - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "Access 数据库案例教程(第二版) - 万水书苑-出版资源网"

Copied!
28
0
0

加載中.... (立即查看全文)

全文

(1)

第 2 章 数据库与表

2.1 Access

简介

Access 是 Microsoft 公司推出的办公自动化集成软件 Office 中的一个模块,是当今流行的、 功能较强的关系型数据库管理系统。由于Office 的版本不断更新,注意各版本之间的兼容性, 才能很好地应用Access 软件来设计数据库。 本书以Access 2010 版为软件背景,兼顾 2007 版,同时适当指明与 2003 版之间的主要 差别。 2.1.1 版本的兼容性 目前比较流行的是Access 2007 版与 Access 2010 版,这两种版本的界面区别不大,操作 方法也基本相同,所建立的库文件格式相同,扩展名都是.accdb,因此库文件基本互相兼容。 早期的Access 2003 版与 2007、2010 版的界面有一定的区别,但操作方法没有本质的区 别,有许多功能大体相同。2003 版所建立的库文件的扩展名为.mdb,不同的文件扩展名意味 着文件在格式上会有差别,因此Access 2003 版建立的.mdb 文件与 Access 2007、2010 版建立 的.accdb 文件存在着一个兼容性的问题。 在Access 2007、2010 版中可以打开 Access 2003 版本所建的数据库(格式为 mdb),即向 下兼容。

在Access 2003 版中无法打开 Access 2007、2010 版所建的 accdb 格式的数据库文件,即早 期版本的Access 只能打开 mdb 格式的数据库。如果希望使 Access 2007 版、2010 版中创建的 数据库能在Access 2003 版中运行,方法是:在 Access 2007、2010 版中将库文件另存为 mdb 格式。但是要注意,如果在accdb 格式数据库中存在着 Access 2003 版中所没有的功能,则可 能无法完成转换。另外,accdb 数据库另存为 mdb 数据库之后,在 Access 2003 版中有些对象 及控件很可能仍然不能正常运行。 2.1.2 Access的界面简介

Access 2010 版具有与 Word 2010、Excel 2010 版等相同的操作界面和使用环境,与早期的 Access 2003 版相比,2010 版以“功能区”替代了早期版本的多层菜单及工具栏。 1.功能区 功能区显示在窗口的顶部,以“选项卡”的形式出现。如图2-1 所示,功能区中有开始、 创建、外部数据等选项卡,选项卡和可用命令将随着所执行操作的变化而变化。每个选项卡根 据命令的作用,又分为多个“选项卡组”,简称为“组”,每个组由若干个按钮组成。如“剪贴 板”组中有粘贴、剪切、复制等按钮。 2.导航窗格 导航窗格位于功能区下方的左侧,用来显示数据库中已经创建好的各种对象。图2-1 中已

(2)

有“课程表”、“学生信息表”、“课程查询”及“课程窗”4 个对象。 说明:在Access 2003 版中,导航窗格被称为数据库窗口。 图2-1 Access 界面 3.工作区 工作区在导航窗格的右侧,用于对数据库对象进行设计、编辑、修改、显示以及打开运行 数据库对象。Access 2010 版及 2007 版采用了选项卡式文档(默认)代替 Access 2003 版中重 叠窗口来显示数据库对象。图2-1 中打开了“课程表”及“学生信息表”两个对象。

2.2 建立数据库

2.2.1 建立空数据库 【例2-1】建立一个名为“学籍管理系统”的空数据库。 (1)建立个人文件夹。建议先在 D 盘或 E 盘上(当然也可以在 C 盘)建立一个数据库 专用的个人文件夹,以便将下面要创建的“学籍管理系统”数据库保存到个人文件夹中。 (2)建立空数据库。在启动 Access 的第一个界面中,单击“空数据库”按钮,再单击右 侧的 按钮(见图 2-2),在打开的“文件新建数据库”对话框中选择准备保存数据库的位置 (文件夹)、输入数据库名称“学籍管理系统”,最后单击图2-2 中的“创建”按钮。 所建立的“学籍管理系统”是一个空库,库中还没有任何对象,需要通过后面的实例为 数据库逐个建立对象。 2.2.2 Access数据库文件 Access 的数据库是一个文件,扩展名为 accdb(2003 版所建立的库文件的扩展名为.mdb)。 Access 的数据库实际上是一个容器,所有对象都被包含在数据库文件中,一共有 6 种对象。 (1)表(Table)。“表”对象是一种关系型表(二维表格),是 Access 用来存储数据的 基本对象,其他对象都是基于表对象而产生的,所以在数据库中建立表对象的工作量是最为 繁重的。

(3)

图2-2 创建“学籍管理系统”数据库 (2)查询(Query)。“查询”是根据某些条件与要求在若干个表中查找出特定的数据, 形成新的数据的集合。 (3)窗体(Form)。“窗体”是数据库与用户的一个联系界面,用来显示、操作表或查询 中的数据,控制程序流程。 (4)报表(Report)。“报表”用来打印数据,包括打印数据的统计等。 (5)宏(Macro)。“宏”是由一系列的命令组合而成的,通过宏这种简单的操作完成编 程工作。 (6)模块(Module)。“模块”是由 VBA 语言编制的程序段,以完成宏无法完成的、较 为复杂或高级的功能。 注意:Access 2003 版中的“页”对象,在 Access 2007 及 2010 版中没有,对于 2003 版中 所建的“页”对象可以用IE 浏览器打开,但不能用 Access 2007 及 2010 版对其编辑。 2.2.3 用模板创建数据库 利用Access 数据管理系统自带的模板,可以自动创建数据库及库中的对象。但是用模板创 建的数据库,表对象中是没有数据的,仍然需要自己输入。初学者没有掌握各种对象的创建方 法和作用,不熟悉各种对象之间的联系,用模板创建的数据库并不适合初学者使用,所以主张 初学者应从空数据库开始创建,待学会了各种对象的创建与使用,再借鉴模板作为自己的助手。

2.3 用设计视图创建表

上面提到表是数据库中存储数据的基本对象,下面通过实例,为“学籍管理系统”数据库 创建表对象。 创建表的方法有多种:用设计视图创建、直接创建空表、根据SharePoint 列表创建表、从 其他数据源导入或者链接表。

(4)

一个关系是由结构与记录两部分组成的,所以用设计视图创建表分两步,先建立表结构, 即先建立一个空表,后输入记录,这是最常用也是最重要的创建表的方法。 2.3.1 建立“课程表” 【例2-2】按照表 2-1 的内容,在上面已建立的“学籍管理系统”空数据库中创建第一个 表对象:课程表。 表2-1 “课程表”的内容 课程号 课程名称 学分 1001 英语精读 4 1002 英语口语 2 2005 大学语文 3 2012 政治经济学 3 3102 线性代数 3 3111 计算机基础 3 3001 高等数学 3 4009 体育 4 5011 电子商务 1 (1)建立表结构。打开“学籍管理系统”数据库,选择功能区中的“创建”选项卡,在 “表格”组中单击“表设计”按钮,打开设计视图,如图2-3 所示。根据表 2-1 中的内容,在 “字段名称”下方输入“课程号”,在“数据类型”下方选择“文本”,在“字段大小”右侧输 入“4”(默认是 255)。在图 2-3 中的第二行字段名称处输入“课程名称”,选择数据类型为“文 本”,“字段大小”输入“20”。接着在第三行输入字段名称为“学分”,选择数据类型为“数字”, 字段大小为默认的“长整型”。 图2-3 表的设计视图

(5)

(2)为“课程表”设置主键。在图 2-3 中右击“课程号”,在弹出的快捷菜单中选择“主 键”,“课程号”左侧的小方格中出现“钥匙”图标,表示“课程号”已被设为主键。 或者选中“课程号”后,单击“设计”选项卡中“工具”组的“主键”按钮来设置主键, 如图2-4 所示。 图2-4 设置“主键” (3)保存“课程表”。单击“课程表”的“关闭”按钮,并以“课程表”为表对象的名称 保存。可以看到左侧的导航窗格中有一个“课程表”,这就是创建的第一个表对象。 (4)为“课程表”输入记录。双击“课程表”打开数据表视图,如图 2-5 所示,按表 2-1 的内容输入“课程表”的9 条记录。单击“关闭”按钮自动保存记录。 图2-5 为“课程表”输入记录 图2-5 中最左侧一列的小方格中,有一些小标记,“笔”标记表示当前正在输入的记录。 “*”标记表示可以在此输入新记录,这不是一条空白记录,空白记录是不能被保存的。 另外,在一个已有记录的表对象中,新的记录只能添加在末尾,不能插入到中间,这是因 为二维表的特点是表中记录与存放顺序无关,如果需要按一定的顺序排列记录,可以通过设置 主键、建立索引、排序等方法来实现(参见后面的实例)。 2.3.2 关系表的特征 1.关系表中的术语 在第1 章已经学习过关系(即二维表格)及属性(字段)、元组(记录)等的概念,下面 进一步学习关系表中的有关术语。 (1)字段名。每一个字段(属性)的命名是有一定规则的,规则与 Windows 中对文件名 的规定略有不同。字段名的长度一般为1~64 个字符,字段名中可以使用字母、汉字、数字、 空格和其他字符,但不能使用句号、惊叹号、方括号、单引号、双引号,不能以空格开头,建 议最好不用空格。 (2)域。域是属性的取值范围,如某门课程成绩的取值范围为 0~100,成绩字段的域就 是0~100。 (3)主关键字(简称主键)。在一个表中虽然允许不设主键,但在一般情况下主键往往是 非常需要甚至必不可少的。

(6)

什么样的字段或者字段组合可以作为表的主键呢?能唯一标识表中每一条记录的字段或 字段集可以作为主键,主键不允许有重复值或空值(NULL)。这里要强调“空值”不是空格, 也不是0,空值是在输入记录时,某个字段没有输入过任何值,叫做空值,记作 NULL。例如, 在图2-5 中,如果“英语口语”的学分什么值也不输入,那么第 2 条记录的“学分”字段的值 就是空值(NULL)。 在上面的例2-2 中,已经将“课程号”字段设置为主键,根据主键的定义,每一条记录中 的课程号的值是不允许重复和为空的。 主键不仅因为它的性质使得在输入记录时减少出错,而且在数据库中有多个表时,表与表 之间需要建立关联,主键更是必不可少的。一个表中只能有一个主键。 对于一个用来存储学生档案的信息表,“学号”字段作为主键最为合适,可以避免两个学 生的学号重复。姓名作为主键不十分合适,因为难免会有同名同姓的学生。同样,如职工信息 表中用职工号设置为主键、户籍资料信息中用身份证号作为主键,就不会出现重复的职工号、 重复的身份证号,可见主键的实用性与重要性。 有时在一个表中找不到没有重复值的字段,这时也可以用两个或两个以上的字段集一起作 为主键,注意是一起作为一个主键,而不是作为多个主键。或者专门设置一个类型为“自动编 号”型的字段来作为表中的主键。所以主键有 3 种类型:单字段型、多字段型(一般最多为 10 个字段)及自动编号型。 (4)候选关键字。候选关键字的作用及能作为候选关键字的条件与主关键字是一样的。 例如,在“课程表”中课程号可以作为主键,课程名称也符合作主键的条件,这两个字段都是 候选关键字。一个表可以有多个候选关键字,但只有一个主键,也就是说在候选关键字中只能 选择一个作为表的主键。 (5)外关键字(简称外键)。一个表中的某个字段或者字段集是另一个表中的主键,这个 字段或字段集就是外键。作为外键的字段名同另一表中的主键字段名可以相同,也可以不相同 (建议应该取相同的字段名),但这两个字段的类型必须一致。 在一个表中不能有同名的字段名存在,也不应该有相同的记录存在。如果在人事档案表中, 有两条记录的姓名是同名的,那么两个人的工作证号是不同的,或者还可以有其他像性别、出 生日期、参加工作时间等的不同,以区别两条记录的不同之处。 2.关系表的设计原则 设计表是数据库系统设计中最重要的一个环节。表中字段设计的合理与完整与否是一个数 据库是否成功的关键,对于以后表的维护以及建立查询、窗体和报表等数据库对象有着直接的 影响。设计表应该遵循以下原则: (1)一个表包含一个主题信息。如课程表只包含课程信息,不应包含学生信息。 (2)一个表中不能有相同的字段名。 (3)一个表中不能有重复的记录。 (4)表中同一列的数据类型必须相同。如课程表中的课程号中不能出现学分的值。 (5)一个表中的记录顺序、字段顺序可以任意交换,不影响实际存储的数据。 (6)表中每一个字段必须是不可再分的数据单元。如课程表中不应该设置一个名为“课 程编号及名称”这样的字段。 3.表的主要视图方式 前面提到,表由结构与记录两部分组成,所以在建立“课程表”时,输入字段(结构)与

(7)

输入记录时的视图是完全不同的。表有两种主要的视图方式。 (1)设计视图。设计视图用来编辑和修改表的结构,即编辑和修改表中的所有字段,包 括字段名及字段类型、字段大小等。图2-3 是表的设计视图。值得注意的是,在图 2-3 的设计 视图中,“说明”列中从来没有输入过内容。在“说明”列中输入的内容只是起到一个注释作 用,与表的创建没有什么关系(即可有可无),必要时可以输入一些注释内容。 (2)数据表视图。数据表视图用来编辑和修改记录,图 2-5 是表的数据表视图。 两种视图方式的切换可以通过右击图2-5 中的表名选项卡“课程表”,在弹出的快捷菜单 中选择;也可单击图2-4 中最左侧的“视图”按钮的下拉箭头,进行不同视图方式的切换,或 者使用窗口右下角的视图按钮来切换(见图2-1)。 2.3.3 数据类型 在图2-3 中为“课程表”的字段选择数据类型时,不难看到 Access 2010 有 12 种字段类型, 如表2-2 所示。 表2-2 字段的数据类型 数据类型 说明 大小 文本型 由字母、汉字、数字及各种符号组成 长度为1~255 个字符 备注型 适用于长度较长的数据,如备注、简历、内容提要等 1~65536 个字符(即最长 64KB) 数字型 1.字节型 0~255,无小数 2.整数型-32 768~32 767,无小数 3.长整型-2 147 483 648~2 147 483 647,无小数 4.单精度型-3.4×10383.4×10387 位小数 5.双精度型-1.7×10308~1.7×10308,15 位小数 6.小数型-1.7×10308~1.7×10308,28 位小数 7.同步复制型 1B 存储 2B 存储 4B 存储 4B 存储 8B 存储 12B 存储 16B 存储 日期/时间型 存储日期时间值 8B 存储 货币型 整数部分15 位,小数部分 4 位,自动添加货币符号及 千分位分隔符 8B 存储 自动编号型 在添加记录时自动递增,不随记录删除而变化 4B 存储 是/否型 用于存储逻辑型数据,只有两种值:真、假。用 Yes

或-1 或 True 表示真,No 或 0 或 False 表示假 1 位 OLE 对象型 存储多媒体数据 不超过1GB 超链接型 存储作为超链接地址文本,如电子邮箱、网页地址 (URL)等 最长65536 个字符 查阅向导型 存储从列表框或组合框中选择的文本或数值 4B 存储 附件型 用于存储任何技术的文件类型,类似于电子邮件中的 附件 对于压缩附件为2GB,未压缩的 附件约为700KB 计算型 表达式或结果类型是小数 8B 存储 注:Access 2007 版中没有计算型字段,2003 版中没附件型和计算型字段。 【例 2-3】为“课程表”添加一个字段,字段名为“课程介绍”,附件型,并为课程号是

(8)

“3111”的记录添加附件内容。 (1)打开“课程表”的设计视图,增加一个新字段:课程介绍,类型为附件型。 (2)切换到数据表视图,双击课程号为 3111 记录的回形针标记,在弹出的“附件”框中 击“添加”按钮,打开“选择文件”框,选择需要添加的文件,图2-6 中添加了“计算机基础 课程大纲.docx”文件,回形针标记旁圆括号中的“1”,表示已添加了一个文件。可以继续添 加更多的文件,最后单击“确定”按钮关闭“附件”对话框。 图2-6 为附件型字段输入数据 说明:Access 2003 版没有附件型字段,此题不能在 2003 版中完成。 2.3.4 建立“学生信息表” 【例2-4】为“学籍管理系统”数据库创建第二个表对象:学生信息表。 (1)设计表结构。表 2-3 是“学生信息表”的结构,字段的类型及大小应根据实际情况 来设计。 表2-3 “学生信息表”表结构 字段名称 数据类型 字段大小 学号 文本型 8 姓名 文本型 4 性别 查阅向导型 民族 文本型 10 班级 文本型 6 出生日期 日期/时间型 是否团员 是/否型 籍贯 文本型 6 电话 文本型 20 E-Mail 地址 超链接型 照片 OLE 对象型 简历 备注型

(9)

姓名、民族、班级、籍贯字段类型只能是文本型。 学号、电话字段值虽然都是数字,但是这些数据是不需要参加算术运算的。如工作证号、 身份证号、工资号、课程号、邮政编码、电话号码等不需要参加算术运算的数据,一般应尽量 设置成文本型,这样可以保留住前置零。例如把电话号码中的区号设置成数字型,那么区号 010,输入后会自动变成 10,对于数字来说前置零是无效的,所以前置零不被保留,把“区号” 字段设置成文本型就不存在这样的问题。 照片是多媒体数据,必须用OLE 对象型。 简历字段的数据可能比较长,而且长短不一,设置成备注型比较合适。 如果某种字段的值只有两种值,不可能有第三种以上的值,那么设置成是/否型比较合适。 是否团员字段只有“是”与“不是”两种值,所以可以设置成是/否型,当然设置成文本型也 是可以的。 E-Mail 地址设置成超链接型,可以方便发邮件。 性别字段完全可以设置成文本型,也可以设置成是/否型,因为性别只有两种值。正因为 性别的值是固定的,所以设置成查阅向导型可以使输入记录更为方便。 (2)用设计视图建立“学生信息表”的结构。建立表结构的方法在例 2-3 中已学习过, 这里主要说明“查阅向导”型字段的建立方法。 打开“学籍管理系统”数据库,选择功能区中的“创建”选项卡,在“表格”组中单击“表 设计”按钮,打开设计视图,按表2-3 输入各字段名及类型、大小等。 其中性别字段的建立方法如下:当选择字段类型为“查阅向导”后,出现“查阅向导” 对话框,选择“自行键入所需的值”单选按钮(见图 2-7),单击“下一步”按钮,在弹出的 下一个对话框(见图 2-8)中,输入“男”、“女”,接下来按向导完成。这时性别字段类型仍 然显示“文本”两个字,这是正常的,在后面输入记录时会看到查阅向导型字段与其他类型 的区别。 图2-7 “查阅向导”对话框 图2-8 “查阅向导”对话框 (3)将“学号”字段设置为主键。右击“学号”,在弹出的快捷菜单中选择“主键”。 (4)为方便观察字段属性设置之后所产生的效果,先输入一条记录。 切换到数据表视图,按照表2-4 的内容输入第一条记录,要强调的是性别、出生日期、是 否团员、照片字段的输入方法。

(10)

表2-4 “学生信息表”的第 1 条记录 学号 姓名 性别 民族 班级 出生日期 是否 团员 籍贯 电话 E-Mail 地址 照片 简历 13010001 王铁 男 白 英语 13 1995 年 12 月 1 日 是 河北 12001300111 wt@sohu.com 性别是查阅向导型字段,当把光标放到“性别”字段下方时,会出现下拉箭头,用鼠标单 击下拉箭头,会出现下拉列表,根据需要选择“男”或“女”。 出生日期是日期/时间型字段,输入时不要输入年、月、日这几个汉字,应该在英文半角 状态下输入,如:1995-12-1,或者:1995/12/1。 是否团员字段下方有一小方格,用鼠标单击出现“∨”标记,表示是团员。如果不是团员 不要用鼠标单击,即小方格中没有“∨”标记的表示不是团员。这是是/否型字段的特点。 照片字段的输入可以有两种方法。一是右击需输入照片处,在弹出的快捷菜单中选择“插 入对象”命令,在打开的对话框中单击“由文件创建”单选按钮(见图 2-9),随后直接选择 要输入的照片或者图片文件即可;另一种方法是在图 2-9 中单击“新建”单选按钮,选择 “Microsoft Word 文档”,单击“确定”按钮打开 Word 窗口,在“插入”选项卡的“插图”组 中单击“图片”按钮,插入所需的图片。 图2-9 “插入对象”对话框 两种方法输入的照片都不会在表中直接显示,只显示“包”或者“Microsoft Word 文档” 等字样,在后面建立窗体时会看到图片显示的。要说明的是:用第一种方法输入的照片在窗体 中可能不能很好地显示,所以建议用第二种方法输入照片。 2.3.5 字段属性 在图2-3 所示的表设计视图中,可以看到字段有“字段大小”、“格式”等属性,不同类型 的字段,属性有所不同。下面来讨论主要属性。 1.字段大小 字段大小只对文本、数字型及自动编号型有效。当字段为数字类型时,字段大小可以选 择整型、长整型等(见表2-2)。字段为文本类型时,字段大小可设置为 1~255,表示该字段 所能容纳的字符的最大个数。例如“课程名称”字段的字段大小设置为 20,表示最多可以输 入20 个字符。注意是 20 个字符而不是 20 个字节,即字符个数不分半角与全角,如 20 个字符 最长可以输入20 个半角的数码、字母或其他符号,也可以输入 20 个全角的汉字或者 20 个其 他全角字符。

(11)

2.格式 格式用来限制显示或打印的方式,只影响显示方式,不影响数据保存方式。如果不设置 格式,则以默认格式显示。 格式只对日期/时间型、数字型、货币型、文本型、备注型、超链接型及是/否型数据有效。 格式中会用到一些特殊的符号作为格式字符。下面的表2-5 列出了格式及输入掩码中常用 的格式字符。更多的格式字符及用法可以查阅有关手册。 表2-5 格式字符 格式字符 用途 0 数字0~9,必需,不允许+和-,不允许输入空格 9 数字0~9,可选,不允许+和- # 数字或空格,可选,允许+和- L 字母A~Z,必需,不能有空格、汉字 ? 字母A~Z,可选 A 字母或数字,必需 a 字母或数字,可选 & 任何字符或空格,必需。一般用于汉字 C 任何字符或空格,可选 . , ; : - / 小数点占位符、千位、日期与时间的分隔符 < 将其后的字母转为小写显示 > 将其后的字母转为大写显示 ! 从右到左显示 \ 将其后的字符显示为原义字符 密码 文本框中输入任何字符都按原字符保存,但以*显示 3.输入掩码 输入掩码用来控制在字段中输入数据时起到一种格式的限制与统一作用。如将学号字段 的输入掩码设置为:00 级 000000,输入时限制前两位代表年级,后 6 位代表序号,以减少出 错率。 4.标题 字段名可以与显示的标题不一致。在设计视图中显示的是字段名,在数据表视图中显示 的是标题,不设置标题,则标题与字段名相同。 5.默认值 如果某个字段的值大部分是同一个值,可将这个值设置为默认值,以减少输入工作量。 6.有效性规则与有效性文本 在有效性规则中可以输入必要的规则,以限制字段的域,在后面的实例中会用到这种规 则;有效性文本中可以输入一些文字,当输入记录违反了所设置的有效性规则时,会弹出有效 性文本以示警告。 7.必填字段 默认为“否”,即字段的值允许不输入,设置成“是”,则可以避免字段值为空。

(12)

8.允许空字符串(仅对文本型) 允许在输入记录时,字段的值为空字符串。 9.索引(在此用于设置单字段索引) 索引可以取 3 种值:无、有(有重复)、有(无重复)。OLE 对象型及附件型字段不能设 置索引属性。 其他属性一般取其默认值即可。 【例2-5】切换到设计视图,为“学生信息表”设置字段属性。 (1)设置出生日期的显示格式。选择出生日期字段,在“格式”文本框中选择长日期格 式。当切换到数据表视图时,可以看到日期值自动加上了年、月、日。 (2)设置 E-Mail 地址字段值以大写显示。选择 E-Mail 地址字段,在“格式”文本框中 输入:>。 (3)设置学号的输入掩码为:××级××××××。选择学号字段,在“输入掩码”文 本框中输入:00 级 000000。 (4)设置民族的默认值属性。考虑到表中民族字段值“汉”占大部分,所以将“汉”设 置为默认值,以减少输入记录时的工作量。选择民族字段,在“默认值”文本框中输入:汉。 (5)设置姓名为必填字段。选择姓名字段,在“必填字段”文本框中选择:是。这样可 以保证姓名字段不为空。 【例2-6】为“课程表”的课程介绍字段设置标题属性。 以设计视图方式打开“课程表”,选择课程介绍字段,在标题文本框中输入:课程介绍。 课程介绍字段是附件型,数据表视图中显示的是一个回形针标记,通过设置标题属性, 数据表视图中就可以显示标题:课程介绍。 【例 2-7】按表 2-6 所示的内容,为“学生信息表”输入所有记录(第一条记录在例 2-5 中已输入)。 表2-6 “学生信息表”的记录 学号 姓名 性别 民族 班级 出生日期 是否 团员 籍贯 电话 E-Mail 地址 照片 简历 13010001 王铁 男 白 英语13 1995 年 12 月 1 日 是 河北 12001300111 wt@sohu.com 13010002 何芳 女 汉 英语13 1995 年 11 月 2 日 是 陕西 12001300112 hf@sohu.com 13010003 肖凡 男 汉 英语13 1994 年 9 月 9 日 是 山东 12001300113 xf@sohu.com 13020004 童星 男 汉 数学13 1996 年 7 月 8 日 否 河北 12001300114 tx@sohu.com 13020005 王芳 女 汉 数学13 1995 年 5 月 6 日 否 北京 12001300115 wf@sohu.com 13020006 王灵燕 女 汉 数学13 1994 年 1 月 1 日 是 上海 12001300116 wly@263.net 13020007 高青 男 蒙古 数学 13 1996 年 1 月 12 日 否 河北 12001300117 gq@163.com 13030008 肖凡 男 汉 中文13 1994 年 1 月 8 日 是 广东 12001300118 xxf@sohu.com 13030009 周小洁 女 汉 中文13 1995 年 9 月 7 日 是 北京 12001300119 13030010 欧阳小俊 男 回 中文13 1994 年 10 月 2 日 否 天津 12001300110 oyxj@sohu.com 13030011 吴博 男 汉 中文13 1994 年 8 月 9 日 是 北京 13030012 黄梅梅 女 汉 中文13 1996 年 5 月 4 日 是 上海 13031111 张三 男 汉 中文13 1994 年 10 月 1 日 是 天津 13031112 李四 男 汉 中文13 1994 年 7 月 5 日 是 湖南

(13)

在数据表视图方式下,可以看到像学号、出生日期、民族、E-Mail 地址等字段因为设置 了字段的某些属性,显示或者输入记录时与例2-5 中输入的第一条记录有一些不同。 2.3.6 建立“成绩表” 【例2-8】为“学籍管理系统”数据库创建第三个表:成绩表。 (1)设计表结构。表 2-7 是“成绩表”的字段名及字段类型。 “成绩表”中的学号应该与“学生信息表”中的学号一致,课程号也应该与“课程表” 中的课程号一致。 “成绩表”中的课程号的值如果与“课程表”中的课程号的值不一致是不允许的,因为 学生不能选修“课程表”中没有开设的课程。例如:“成绩表”中的课程号不能输入“6000”, 因为“课程表”中没有“6000”号课程。为了使“成绩表”中输入的记录能与相应的“学生信 息表”及“课程表”的数据一致,“成绩表”中学号与课程号两个字段采用查阅向导型。数据 分别来自“学生信息表”与“课程表”。 考虑到成绩可能会出现小数,所以4 个有关成绩的字段都设置为单精度型。 表2-7 “成绩表”的表结构 字段名称 数据类型 字段大小 学号 查阅向导型 课程号 查阅向导型 期中成绩 数字型 单精度型 期末成绩 数字型 单精度型 平时成绩 数字型 单精度型 总评成绩 数字型 单精度型 (2)用设计视图建立“成绩表”的结构。建立表结构的方法同“学生信息表”结构的建 立。但学号与课程号两个字段的查阅向导型的建立与“学生信息表”中的性别字段有所不同。 为学号字段选择查阅向导型,出现图2-7 所示的对话框时,选择第一项“使用查阅字段 获取其他表或查询中的值”单选按钮。单击“下一步”按钮,在弹出的下一个对话框中选择 “表:学生信息表”。单击“下一步”按钮,在图 2-10 所示的对话框中单击“>”按钮,分 别将“学号”、“姓名”两个字段,从左边的“可用字段”列表框中选择到右边的“选定字段” 列表框。连续单击“下一步”按钮,当出现图 2-11 所示的对话框时,取消选中“隐藏键列 (建议)”复选框,使学号与姓名两个字段同时展示。单击“下一步”按钮,指定“学号” 为“可用字段”,直到完成。 用同样的方法设置课程号为查阅向导型,只是要选择“课程表”作为数据源。 (3)设置主键。首先来看看表 2-8 中“成绩表”的记录,每个字段值都有重复值,不符 合作为主键的条件。前面讲过,主键有3 种类型,既然“成绩表”中单字段无法设置为主键, 可以考虑用多字段作为主键。分析一下,学号为13010001 的学生选了 3 门课,这 3 门课的课 程号是不会重复的,因为学生不可能把同一门课选两次。所以学号与课程号两个字段合起来作 为主键,是符合主键的条件的,这就是多字段型的主键。

(14)

图2-10 “查阅向导”对话框 图2-11 “查阅向导”对话框 在设计视图中,将鼠标移向学号字段左侧的小方格,待鼠标变为向右的粗箭头时,向下 拖动将学号与课程号两行都涂黑,再单击“主键”按钮,小方格中出现两个钥匙图标(见图 2-12),两个字段一起设置为主键。不是两个主键,是两个字段合起来作为一个主键。 图2-12 “成绩表”的设计视图 (4)设置字段属性。 为期中成绩、期末成绩、平时成绩字段分别设置有效性规则:成绩在0~100 之间,设置 有效性文本:“成绩的范围应在0~100 之间”。 分别在3 个字段的“有效性规则”框中输入:Between 0 And 100,在“有效性文本”框中 输入:成绩的范围应在0~100 之间(见图 2-12)。 设置“期中成绩”、“期末成绩”、“平时成绩”、“总评成绩”的显示格式为:保留1 位小数。 分别在3 个字段的“格式”框中输入:#.#(见图 2-12)。 注意:先不要给“成绩表”输入记录,在下一节建立了表间关系之后再输入记录。

2.4 表间关系

在数据库中表与表并不是孤立的,相互之间是有联系的,这种联系叫关系或关联。通过 建立关系,实现参照完整性,可将多个表中的信息同时显示在窗体、报表或查询中。

(15)

2.4.1 建立表间关联 【例2-9】为“学籍管理系统”数据库中的学生信息表、成绩表及课程表 3 个表建立关联。 (1)先为各表建立主键。在前面的实例中已经为这 3 个表建立了主键。 (2)关闭所有表。要建立关联,务必先将所有表关闭。 (3)建立关联。在功能区“数据库工具”选项卡的“关系”组中,单击“关系”按钮, 弹出“关系”窗口,如图2-13 所示(两条联线及 1、∞符号在关联建好后才能出现)。 图2-13 “关系”窗口 说明:可能当打开图 2-13 所示的“关系”窗口时,3 个表之间已经有些联线存在,那是 因为成绩表中有两个字段类型是查阅向导型,而且数据分别来自于学生信息表与课程表,这时 可直接双击联线,打开“编辑关系”对话框,按图2-14 所示操作。 如果“关系”窗口中不出现 3 个表,可以右击“关系”窗口的空白处,在弹出的快捷菜 单中选择“显示表”命令,把3 个表分别添加到“关系”窗口。 在图2-13 中,用鼠标选择“学生信息表”中的“学号”字段,并拖动学号字段到“成绩 表”中的学号字段(如果没有联线的话),放开鼠标,在弹出的“编辑关系”对话框中选中“实 施参照完整性”、“级联更新相关字段”及“级联删除相关记录”3 个复选框(见图 2-14),单 击“确定”按钮。 用同样的方法,将“课程表”中的“课程号”字段拖动到“成绩表”中的“课程号”字 段,建立关联并实施参照完整性,最后结果如图2-13 所示。 (4)编辑关系。如果要删除关系,可以右击关系线,在弹出的快捷菜单中选择“删除” 命令。 双击关系线,可以打开图2-14 所示的“编辑关系”对话框,对关系进行修改。 图2-14 “编辑关系”对话框 2.4.2 表间关系的相关知识 1.主表与子表 两表建立关联,必须确定哪一个是主表(也叫父表),哪一个是子表。

(16)

在上例中,课程表与成绩表之间,前者是主表,后者是子表,因为应该先有课程表,后有 成绩表。例如,课程表中有课程号为1001 的记录,成绩表才可以出现课程号为 1001 的记录, 即学生才可以选择1001 这门课,反之则不然。如果在成绩表中输入课程号为 6000,这表明学 生企图要选择课程表中还没有开设的课程,这是不符合常理的,所以课程表应该是主表,而成 绩表是子表。同样,学生信息表与成绩表之间的关系应该是学生信息表是主表,成绩表是子表。 学生信息表与课程表之间不具备建立关联的条件。 2.建立关联的条件 建立关联首先要对主表建立主键,子表是否建立主键一般不影响建关联。在图2-13 中可 以看出,主键字段名左侧有一个“钥匙”标记(Access 2003 版中则以黑体字表示主键字段)。 两表之间是否能建关联,还要看子表中是否有“外键”。外键的概念在前面已经叙述过。 实际上就是要看两表之间是否有共有字段。学生信息表与成绩表的共有字段是学号,课程表与 成绩表的共有字段是课程号。这里再次强调,共有字段的字段名可以不同,比如学生信息表中 的字段名叫“学号”,成绩表中的学号字段名也可以叫“编号”,但是这两个共有字段必须类型 一致,否则可能无法建立关联。当然共有字段最好还是取一样的字段名比较方便直观。学生信 息表与课程表没有这样的共有字段,所以不能建关联。 在打开“关系”窗口之前,应该先将所有表都关闭。 3.3 种关系类型 在图2-14 中可看到“关系类型:一对多”这样的字样。两表之间的关系类型一共有 3 种: (1)一对一。主表中一条记录对应子表中一条记录,记作(1:1)。 在一对一关系类型中,主表与子表的共有字段都必须是主键。 (2)一对多。主表中一条记录对应子表中多条记录,记作(1:n)。学生信息表与成绩表、 课程表与成绩表都是一对多的关系。例如,课程表中的课程号为“1001”的记录只有一条,但 在成绩表中课程号为1001 的记录有多条,因为一门课被许多同学选修。 图2-13 中的“1”表示“一方”,主表是“一方”,“∞”表示“多方”,子表为“多方”。 在一对多关系中,子表可以不建主键。 (3)多对多。主表中多条记录对应于子表中多条记录,记作(m:n)。Access 数据库管理 系统不能实现这种类型的关系,这种类型的关系应该转换为多个一对多的关系,再由 Access 数据库管理系统实现。 4.在“关系”窗口中拖动字段时的方向 在图2-13 所示的“关系”窗口中拖动字段建立联线时,拖动方向应该从主表到子表,如 果拖反了,即从子表向主表拖动,对于一对多关系来说,系统会自动识别主表与子表,不会发 生错误。但是在一对一关系中,从子表向主表拖动,则系统就会将“子表”当作主表,很可能 无法建立关系,或者即便建立了,在以后的操作中也很可能会出现意想不到的错误,所以要特 别小心。 5.关系模型的 3 种完整性约束 第1 章讲过数据模型有 3 个要素,即数据结构(描述系统的静态特征)、数据操作(描述 系统的动态特征)及数据的完整性约束条件,而完整性约束条件又有3 种,即:用户自定义完 整性、实体完整性及参照完整性。 (1)用户自定义完整性。用户自定义完整性是用户根据实际需要,自行定义的删除约束、 更新约束及插入约束。如在例2-9 中创建的“成绩表”,为 3 个有关成绩的字段定义了自定义

(17)

约束:成绩的取值范围为0~100,当成绩的取值超出这个范围时,就违反了自定义完整性约束。 (2)实体完整性。实体完整性则指对于关系中元组的唯一性约束,也就是对组成主键的 属性的约束。在例2-5 中将“学生信息表”的学号字段设置为主键,所以学号字段的属性域不 能为空(NULL),且属性值不能重复。如果不满足此条件,就违反了关系的实体完整性。 (3)参照完整性。参照完整性是在输入和删除记录时为维护表间关系而必须遵循的一个 规则系统。 在建立关联之前,如果在子表中输入了主表中不存在的记录,如在成绩表中输入了学号 为00000000 的记录,再建立“实施参照完整性”时(图 2-14),则系统会弹出警告框,警告 你违反了参照完整性,因为主表中没有00000000 学号的记录。因此,建立参照完整性是为了 使主表与子表中的数据保持一致,即在建立了正确的关联并实施了参照完整性之后,再输入成 绩表记录,就无法输入主表(学生信息表)中不存在的记录,避免了主表与子表之间数据不一 致的错误。同样在图2-14 中选择“级联更新相关字段”、“级联删除相关记录”,也正是为了维 持两表之间的关系而自动同步更新、自动同步删除,自动维持参照完整性。 如果在图2-14 中不设置参照完整性,即不选中“实施参照完整性”复选框,那么图 2-13 中两表之间只能出现联线,不会出现“1”和“∞”。 说明:在建立数据库中的表对象时,应该先建立关联,后输入记录;先输入主表中的记录, 后输入子表中的记录,这样可以避免输入记录时违反参照完整性规则,减少出错率。尤其在没 有建立关联之前,不要给子表输入记录,因此成绩表中的记录放在后面的例子再输入。 2.4.3 为成绩表输入记录 【例2-10】按表 2-8 的内容,为“成绩表”输入记录。总评成绩不用输入任何数据,在后 面的例子中再计算。 表2-8 “成绩表”的记录 学号 课程号 期中成绩 期末成绩 平时成绩 总评成绩 13010001 1001 94 76 66 13010001 2005 80 80 80 13010001 3102 80 90 89 13010002 3102 69 97 58 13010002 3111 85 89 76 13010002 4009 69 97 58 13010003 1001 70 89 88 13010003 1002 78 89 60 13010003 3102 95 91 90 13010003 3111 80 88 78 13020004 2005 75 79 80 13020004 4009 84 70 84 13020005 1002 88 70 50 13020005 3102 90 60 77

(18)

续表 学号 课程号 期中成绩 期末成绩 平时成绩 总评成绩 13020006 1001 20 90 39 13020006 1002 50 9 8 13020007 1002 64 60 76 13020007 3102 84 90 84 13030008 1001 90 98 87 13030008 2005 86 70 76 13030008 4009 90 80 70 13030009 1001 80 90 89 13030009 1002 8 9 8 13030010 1001 80 90 89 13030010 3111 90 87 87 13030011 1001 56 55 58 13030011 4009 89 90 88 13030012 1001 89 78 77 13030012 3111 89 77 80 13031111 1002 80 90 89 2.4.4 主表与子表之间的关系举例 前面讨论了“学籍管理系统”数据库的三个表的主子关系,并建立了关联和参照完整性, 下面来观察主表与子表之间的一些现象,以进一步加深对实施参照完整性的重要性的理解。 【例2-11】对于主表“课程表”展开子表。 由于课程表存在着子表,即成绩表是子表,当打开“课程表”时会看到左侧的“+”标记, 如图2-15 所示。单击“+”标记,子表“成绩表”即被展开,“+”变成“-”,再单击“-”,子 表被折叠。 图2-15 展开子表

(19)

【例2-12】观察修改后的结果。 (1)打开“学生信息表”,将张三的学号由原来的 13031111 改为 13031115,关闭“学生 信息表”。打开“成绩表”,可以看到13031111 也自动被改成了 13031115。这是因为在图 2-14 中设置了“实施参照完整性”中的“级联更新相关字段”,即当更改主表中的主键值时,所有 建立了参照完整性的子表会自动更改相关字段的值,这里的相关字段是学号。 (2)打开“学生信息表”,删除“张三”的记录并关闭表(张三的学号已被改为 13031115)。 再打开“成绩表”,可以看到成绩表中原有一条学号为13031115 的记录已经自动被删除。这是 因为在图2-14 中设置了“级联删除相关记录”,即当删除主表中的记录时,会自动删除所有子 表中的相关记录。 由此例可看出参照完整性的重要性,如果没有建立正确的关系和参照完整性,在后面的 多表查询中还会出现意想不到的后果或者错误。

2.5 用其他方法创建表

2.5.1 直接创建空表 【例2-13】利用直接创建空表的方法,按表 2-9 的内容创建一个“补助表”。 表2-9 “补助表”的记录 学号 姓名 补助 13010001 王铁 300 13010002 何芳 300 13010003 肖凡 300 在“创建”选项卡“表格”组中,单击“表”按钮,创建一个名为“表1”的新表,并以 数据表视图方式打开,如图2-16 所示。 图2-16 新建的表 1 可以双击“ID”字段名,将其改为学号,在“单击以添加”处单击并输入:姓名,接着 输入补助字段。 用这种方法创建表,实际上是直接在“数据表视图”方式中输入字段名及记录,但是字 段类型无法设置,必须再切换到“设计视图”对这3 个字段的类型及大小重新设置。 切换到设计视图,将学号字段设置为文本型,大小为8;姓名为文本型,大小为 4;补助 为货币型。这里的学号、姓名字段类型及大小应该与学生信息表相同。 切换到数据表视图,将表2-9 中的 3 条记录输入完整。

(20)

2.5.2 导入、链接与导出

通过导入、链接也是建立表对象的一种方法。

Access 通过“导入”与“导出”的方法,不仅可以在两个 Access 的数据库中互相访问数 据,而且还具有访问不同系统中不同格式的数据的能力,实现数据的共享。

在“外部数据”选项卡的“导入并链接”组中,可以看到Access 所能处理的数据格式有: Access 数据库、Excel 电子表格、ODBC 数据库、文本文件、XML 文件等。

用导入、导出的方法不但可以在两个 Access 数据库之间导入、导出表对象,还可导入、 导出Access 数据库中的其他 5 个对象。 导入和链接的操作十分相似,都可以将其他格式的数据引入到 Access 数据库,但是这两 种方法所获得的表是有本质区别的。 导入的表相当于复制表,将数据内容真正保存在当前库中,与源文件的数据没有联系。 当改变导入表中的数据时,源文件中的数据不会受影响;同样改变源文件中的数据时,导入表 中的数据也不会发生改变。 链接只是将源文件的映像放在当前库,真正的数据仍保存在源文件,改变源文件中的数 据,链接表与源文件中的数据将同步改变,始终保持数据一致。 【例2-14】将 Excel 表导入到“学籍管理系统”数据库。

(1)建立 Excel 工作表。用 Excel 建立一个名为“通讯录”的工作簿文件,并在其 Sheet1 工作表中输入一些数据(可参考图2-18 中的数据),将工作簿文件保存在个人文件夹中。 (2)将外部数据导入到数据库。在“学籍管理系统”数据库窗口中,选择“外部数据” 选项卡的“导入并链接”组中的Excel 按钮,打开“获取外部数据”对话框,如图 2-17 所示。 选择“将数据源导入当前数据库的新表中”单选项,并单击“浏览”按钮,找到上面建立的“通 讯录”,单击“确定”按钮,出现“导入数据表向导”对话框,从中选择Sheet1 并单击“下一 步”按钮,在下一个向导对话框中选中“第一行包含列标题”复选框,如图2-18 所示,按照 向导提示完成数据的导入。 图2-17 “获取外部数据”对话框

(21)

图2-18 “导入数据表向导”对话框 【例2-15】将“课程表”导出为 Excel 表。 在“学籍管理系统”数据库的导航窗格中选择“课程表”,在“外部数据”选项卡的“导 出”组,单击“Excel”按钮,即可完成。 【例2-16】将 Excel 的工作簿文件“通讯录”中的 Sheet1 链接到“学籍管理系统”数据 库中作为一个表对象,表名为“通讯录”。 链接与导入的操作基本是一样的,只要在图 2-17 中选择“通过创建链接表来链接到数据 源”单选项,仿照例2-14 按向导完成即可。 可以看到链接表“通讯录”的图标是一个Excel 文件的图标,左侧有一个箭头,这是链接 表的标记。 前面提到链接表与源文件可以保持数据同步。打开Excel 中的“通讯录.xlsx”文件,修改 Sheet1 其中一项内容,如把“王平”改为“王小平”,关闭 Excel,打开库中的“通讯录”链接 表,此时表中第一条记录也已改为“王小平”,而在例2-15 中导入的 sheet1 表中仍然是王平, 不会改变成王小平,这就是链接与导入的区别。

2.6 表的操作

2.6.1 复制表与删除表 在数据库窗口可以复制整个表,也可只复制结构,还可以将一部分记录复制(追加)到 已有的表中。 【例2-17】将“学生信息表”的结构复制一份,名为“学生信息表结构”。 在“学籍管理系统”数据库的导航窗格中右击“学生信息表”对象,在弹出的快捷菜单 中选择“复制”命令,在导航窗格的空白处右击,在弹出的快捷菜单中选择“粘贴”命令,在 “粘贴表方式”对话框中选中“仅结构”单选按钮,如图2-19 所示,在“表名称”文本框中 输入“学生信息表结构”。

(22)

图2-19 “粘贴表方式”对话框 复制过来的“学生信息表结构”是一个只有结构没有记录的空表。 如果在图 2-19 中选中“结构和数据”单选按钮,那么复制的表与原表完全一致,既有结 构又有记录。 选中图 2-19 中的“将数据追加到已有的表”单选按钮,可以将一个表(源表)中的记录 追加到另一个表(目标表)中,但这两个表的结构应该相同。 右击导航窗格中的某个表,在弹出的快捷菜单中选择“删除”命令,即可将表删除。 2.6.2 冻结与隐藏字段 1.冻结字段 当表中的字段比较多,超过屏幕宽度时,需要用水平滚动按钮将表左右移动,给查看数 据带来不便,此时可以冻结某些重要的字段(列),保证被冻结的字段在水平移动时保持不动, 始终可见。 2.隐藏字段 可以将某些字段暂时隐藏,不被显示在数据表视图中,但它们并没有被删除,只要取消 隐藏就可以恢复显示。 【例2-18】对“学生信息表”进行冻结与隐藏字段的操作。 (1)冻结学号与姓名字段。以数据表视图方式打开“学生信息表”,选择学号与姓名两 列,右击,在弹出的快捷菜单中选择“冻结字段”命令,学号与姓名两列被冻结,移动水平滚 动条,学号与姓名两列始终不会被移出。 右击某个字段,在弹出的快捷菜单中选择“取消冻结所有字段”命令,恢复原状。 (2)隐藏字段。选择电话及 E-Mail 地址字段,右击,在弹出的快捷菜单中选择“隐藏字 段列”命令,这两列数据不再被显示。 右击某个字段,在弹出的快捷菜单中选择“取消隐藏字段”命令,会弹出“取消隐藏列” 对话框,在对话框中选中电话及E-Mail 地址两个字段的复选框即可恢复被隐藏的字段。 2.6.3 记录排序 表中的记录默认是按主键字段的值升序排列的,若没有设置主键,则按输入时的先后顺 序排列。如果需要,也可按照表中的某个或某些字段进行排序。 1.单字段排序 【例2-19】对“成绩表”中的期末成绩按降序排序。 在“成绩表”的数据表视图中,选择期末成绩列或者光标放在此列的任何地方,在“开 始”选项卡的“排序和筛选”组中,单击“降序”按钮即可,如图2-20 所示。

(23)

图2-20 “排序和筛选”组 “排序和筛选”组中的“取消排序”按钮可以取消排序。 在数据表视图中,每个字段名右侧都有一个下拉箭头,可以直接在这个下拉列表中进行 排序。 2.多字段排序 多字段排序需要按字段的排序顺序从左到右相邻放置。 【例2-20】对“学生信息表”按性别升序排序,性别相同的按学号升序排序。 由于学号与性别字段不相邻,且顺序也不对,所以要先调整字段放置的位置及顺序。 在“学生信息表”的数据表视图中,选择学号列,将学号列移动到性别列的右侧。图2-21 是移动之后的顺序。 选中性别与学号两列,单击“升序”按钮,可以看到性别字段“男”排在“女”的前面, 这是按拼音顺序排列的,男性记录中又按学号从小到大排列。性别与学号字段名右侧的下拉箭 头旁有一个向上的箭头,表示这两个字段为升序排序,如图2-21 所示。 图2-21 多字段排序 2.6.4 记录筛选 记录筛选就是只显示表中那些满足某种条件的记录,其他的记录被隐藏起来,实际上也 是简单的查询。 可以直接单击每个字段名右侧的下拉箭头,在下拉列表中进行筛选(Access 2003 版中没 有),非常方便。这种方法类似于Excel 中的筛选。 【例2-21】筛选出“学生信息表”中所有少数民族的记录。 单击民族字段右侧的下拉箭头,打开筛选器,取消选中“汉”复选框,如图2-22 所示, 单击“确定”按钮,其他非汉族(即少数民族)的记录就被筛选出来了。

(24)

图2-22 筛选少数民族 单击图2-20 中的“筛选器”按钮也可打开筛选器。 在图2-22 中再选中“汉”复选框,则可以取消筛选。 【例2-22】筛选出“学生信息表”中所有汉族中的女生记录。 先在图 2-22 中选中“汉”复选框,取消非汉族的复选框,即先筛选出汉族的记录,再单 击性别字段的下拉箭头,取消选中“男”复选框,两次筛选就可完成筛选出汉族中的女生记录。 从图2-20 中可以看到,在“排序和筛选”组中还有“选择”、“高级”等命令。其中“选 择”命令可以实现选择筛选,具体有“等于”、“不等于”等可供选择;“高级”命令又包含了 按窗体筛选、高级筛选。实际上,Access 通过建立查询对象实现查询的功能远比筛选更丰富, 在下一章中将详细学习查询对象的创建。 2.6.5 表的其他操作 表对象以数据表视图方式打开时,可以由“文本格式”组对文字进行字体、字型、字号 及颜色等的设置,方法类似于Word。 “查找”组中的“查询”、“替换”命令的用法也类似于Word。 “文本格式”组的“对话框启动器”(右下角的小箭头)打开的对话框中可以设置数据的 单元格效果,比如设置为平面,网格线为蓝色,背景为白色等。

2.7 习题与实验

2.7.1 习题 一、选择题 1.Access 2007/2010 版数据库文件的扩展名是( )。 A.TXT B.MDB C.ACCDB D.XLSX 2.Access 2003 版数据库文件的扩展名是( )。 A.TXT B.MDB C.ACCDB D.XLSX 3.数据表中的行称为( )。 A.记录 B.标题 C.字段 D.都不对 4.数据表中的列称为( )。

(25)

A.记录 B.标题 C.字段 D.都不对 5.在数据表中需要存放一段音乐的字段类型应该是( )。 A.备注型 B.OLE 对象型 C.文本型 D.自动编号型 6.要修改字段的类型,应该在数据表的( )视图中进行。 A.浏览 B.数据表 C.设计 D.预览 7.在关系数据模型中,域是指( )。 A.某几个字段 B.属性的取值范围 C.属性 D.某几条记录 8.如果表 A 中的一条记录与表 B 中的多条记录相匹配,则表 A 与表 B 存在的关系是 ( )。 A.无意义 B.不确定 C.多对一 D.一对多 9.要求工资的取值范围在 5000~10000 之间,应在表设计视图的“工资”字段的“有效 性规则”框中输入( )。 A.5000 and 10000 B.5000—10000 C.5000 or 10000 D.Between 5000 And 10000 10.文本型字段中最多可存储的字符个数是( )。 A.8 B.155 C.255 D.6400 11.空值 NULL 是指( )。 A.0 B.空格 C.从未输入过任何值 D.都不对 12.以下关于主键的说法,( )是错误的。 A.作为主键的字段中不允许出现空值(NULL) B.使用自动编号是创建主键最简单的方法 C.作为主键的字段中允许出现空值(NULL) D.不能确定任何一个字段的值是唯一时,可将两个以上的字段组合成为主键 13.对于某个字段的值必须输入任何字符或空格,该字段的输入掩码是( )。

A.A B.a C.C D.& 14.表中的隐藏列( )。 A.在屏幕上暂时看不见 B.永远消失 C.取消隐藏也不能在屏幕上显示 D.一旦隐藏不能再显示 15.排序时如果选取了多个字段,则结果是按照( )排序。 A.最左边的列 B.最右边的列 C.从左向右的优先次序依次 D.无法进行 16.要将某一字段设置为必填字段,应在表的( )视图中设置。 A.数据表 B.浏览 C.设计 D.预览 17.为某字段定义了输入掩码,同时又设置了格式属性,则数据显示时( )。 A.互相冲突,不能显示任何数据 B.输入掩码的设置优先于格式属性 C.格式属性优先于输入掩码的设置 D.都不对 18.关于输入掩码,( )是错误的。 A.在定义字段的输入掩码时,既可以使用输入掩码,也可以直接使用字符

(26)

B.输入掩码中的字符“0”表示可选择输入数字 0~9 之间的一个数 C.定义字段的输入掩码,是为了设置密码 D.用字符定义输入掩码时,可以根据需要将字符组合起来 19.表中有一“电话”字段,文本型。要确保输入的电话值只能为 8 位数字(不能有空 格),应将该字段的输入掩码设置为( )。 A.######## B.00000000 C.99999999 D.???????? 20.Access 字段名不能包含( )字符。 A.! B.% C.— D._ 21.能够用“输入掩码向导”创建输入掩码的字段类型有( )。 A.数字和文本 B.数字和日期/时间 C.货币与数字 D.文本和日期/时间 22.数据的最小访问单位是( )。 A.表 B.字节 C.字段 D.记录 二、填空题 1.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、__________和自 定义完整性。 2 . 数 据 库 共 有 __________ 、 __________ 、 __________ 、 __________ 、 __________ 和 __________6 种对象。 3.Access 2010 版的数据类型共有__________种,分别是__________、__________、 __________、__________、__________、__________、__________、__________、__________、 __________、__________和__________。Access 2007 版比 2010 版少一种类型,是__________。 Access 2003 版只有 10 种,没有__________和__________类型。 4.主键有__________、__________与__________3 种类型。 5.表间关系有__________、__________与__________3 种。 6.备注型字段适用于长度较长的文本,最长可达__________个字符。 7.货币型数据可以和数值型数据混合计算,结果为__________型。 8.输入掩码的“<”字符,作用是__________。 9.是/否型数据有两个值,分别是真和假,用__________、__________或__________表示 真,而__________、__________或__________表示假。 10.将文本型字符串“7”、“17”、“180”按升序排序,则排序的结果为__________。 11.将数字 7、17、180 按升序排序,则排序的结果为__________。 12.要求“性别”字段取值必须是“男”或“女”,在“有效性规则”框中应输入__________。 三、思考题 1.什么是“参照完整性”? 2.“冻结字段”有什么作用? 3.“隐藏列”有什么作用? 4.“导入”与“链接”有什么区别?

(27)

2.7.2 实验一 在“学籍管理系统”数据库中完成下列各题。 1.将“课程表”的字体、字型、字号及颜色分别调整为华文楷体、粗体、14 磅及深蓝色。 提示:在“文本格式”组中选择。 2.设置“课程表”的格式,单元格效果为平面,网格线为蓝色,背景为白色。 提示:打开“文本格式”组的“对话框启动器”。 3.为“补助表”中的“补助”字段设置有效性规则:将补助的金额限制在 0~500 之间。 4.为“补助表”的“学号”字段设置输入掩码,使其输入的格式为:××级××××××。 5.将“补助表”与“学生信息表”建立关联,并设置参照完整性、级联更新相关字段和级 联删除相关记录。分别设置补助表的学号为主键、补助表不设主键时,关联的类型有什么区别。 6.将“补助表”导出为 Excel 表。 7.将由 Excel 导入的“通讯录”表删除。 8.将由 Excel 链接的“通讯录”表删除。 9.在个人文件夹下新建一个空数据库,库名自定,将“学籍管理系统”数据库中的学生 信息表、课程表及成绩表导入。 2.7.3 实验二 说明:各章的实验二都是在实验一的基础上加大一定的难度,并且基本不再给出提示,读 者可以参考例题中的步骤来完成实验二,以进一步提高自己的操作水平及熟练程度。 1.在个人文件夹中建立一个名为“教师任课系统”的空数据库。以下实验题在“教师任 课系统”库中完成。 2.将“学籍管理系统”数据库中的“学生信息表”、“成绩表”、“课程表”及“补助表” 导入到“教师任课系统”数据库。 3.在“教师任课系统”数据库中建立“教师任课表”,内容如表 2-10 所示(建议先建立 结构,不要输入记录,做完下面的4、5、6 三个小题后再输入记录)。 表2-10 “教师任课表”内容 序号 (自动编号) 教师编号 (文本,8) 教师姓名 (文本,8) 课程号 (查阅向导型) 所在部门 (文本,10) 0101 张小江 1001 外语系 0102 孙可 1001 外语系 0103 何强 1002 外语系 0102 孙可 1002 外语系 0104 王强 2005 中文系 0201 张小平 2012 社科部 0202 柳小海 2012 社科部 0203 赵玉 3102 基础部 0204 黄丽 3111 基础部 0205 张小明 4009 基础部 0301 付杨 2005 中文系

(28)

4.“教师任课表”中课程号字段的“标题”属性设为“所任课程号”。 5.为教师任课表设置主键(序号作为主键)。 6.建立以上 5 个表的关联,并设置实施参照完整性、级联更新相关字段和级联删除相关 记录。 7.对“教师任课表”的格式进行设置,如改变字体、字号、行高、背景色等。 8.对“教师任课表”按“教师编号”升序排序。 9.在“教师任课表”中筛选出“所在部门”是外语系的记录。 10.为“学生信息表”第一条记录的“简历”字段输入内容,内容自编。 11.为“补助表”增加 2 个新字段:伙食补助,货币型,并为每个人的伙食补助输入 100。 再增加一个新字段:补助总计,计算型。补助总计的值为补助加伙食补助。 提示:在“补助表”的设计视图中,补助总计字段的“表达式”文本框中输入:[补助]+[伙 食补助],切换到数据表视图,可以看到每条记录中的补助总计字段的值已自动计算,这是 Access 2010 版所特有的功能。 注意:因为Access 2007、2003 版都没有计算型字段,所以 11 小题不能在 Access 2007、 2003 版中完成。对于这样的任务,Access 2007、2003 版可以将补助总计字段设置为货币型或 者数字型的单精度型,再用下一章要学习的更新查询计算出补助总计字段的值。 12.现有教师信息如表 2-11 所示,请设计教师信息表的结构,并建立输入教师信息表的 所有数据,建立教师信息表与教师任课表的关联及参照完整性。为性别字段设置有效性规则: 性别的值只能为男或者女。 表2-11 “教师信息表”内容 编号 教师姓名 性别 出生日期 职称 参加工作时间 工作年限 简历 是否外聘 0101 张小江 男 1960 年 11 月 12 日 教授 1982 年 9 月 1 日 否 0102 孙可 女 1962 年 3 月 5 日 副教授 1985 年 10 月 10 日 是 0103 何强 男 1970 年 5 月 7 日 副教授 1995 年 6 月 4 日 否 0104 王强 男 1981 年 6 月 15 日 讲师 2006 年 8 月 15 日 是 0201 张小平 女 1974 年 5 月 15 日 讲师 2000 年 3 月 1 日 否 0202 柳小海 男 1959 年 1 月 16 日 教授 1986 年 5 月 1 日 否 0203 赵玉 女 1981 年 9 月 12 日 讲师 2007 年 8 月 15 日 否 0204 黄丽 女 1964 年 12 月 23 日 教授 1986 年 3 月 1 日 是 0205 张小明 男 1968 年 6 月 15 日 副教授 1994 年 7 月 25 日 否 0301 付杨 女 1983 年 10 月 9 日 助教 2010 年 6 月 15 日 否

數據

表 2-4  “学生信息表”的第 1 条记录  学号  姓名  性别 民族  班级  出生日期  是否 团员 籍贯 电话 E-Mail 地址  照片  简历 13010001 王铁  男  白  英语 13 1995 年 12 月 1 日 是  河北 12001300111 wt@sohu.com   性别是查阅向导型字段,当把光标放到“性别”字段下方时,会出现下拉箭头,用鼠标单 击下拉箭头,会出现下拉列表,根据需要选择“男”或“女”。  出生日期是日期/时间型字段,输入时不要输入年、月、日这几个汉字,应该

參考文獻

相關文件

Mathematics Education Key Learning Area – Pure Mathematics Curriculum and Assessment Guide (Advanced Level). Hong Kong: The Government

一个运动场由长方形 PQRS 及两个半圆组成,如下图。若长方形 PQRS 的长度 PQ 为 100 m,运动场的周界为 400 m。求长方形 PQRS

以及高三數學甲Ⅰ、Ⅱ,與數學乙Ⅰ、Ⅱ的選修課程,其中數學 IV 分為 A、B 兩版,B 版 擴充了 A 版的內容,所增加的題材在課程綱要中以◎

• 透過觀察和實驗 透過觀察和實驗 透過觀察和實驗, 透過觀察和實驗 , , ,強化 強化 強化 強化、 、 、 、修訂 修訂 修訂

教育局 课程发展处 数学教育组.

private void Page_Load(object sender, System.EventArgs e) {. string dataSource

zSELECT 欄位名稱1, 欄位名稱2, … FROM 資料表名稱 WHERE 條件式 ORDER BY 欄 位名稱 (字串需以單引號 '

afx_msg void OnLButtonDown(UINT nFlags, CPoint point). {……;