第2章Access数据库基础知识2.1Access数据库概述2.2Access的特点2.3Access2003的新增功能2.4Access的基本操作2.5Access数据库设计2.6Access数据库的对象2.7数据类型与表达式2.1Access数据库概述MicrosoftAccess是第一个在Windows环境下开发的一种全新的关系数据库管理系统,是中小型数据库管理的最佳选择。Access2003和Access2000不仅是数据库管理系统,而且还是一个功能强大的开发工具。Access使用标准SQL(StructuredQueryLanguage,结构化查询语言)作为它的数据库语言。每一个Access数据库,包括它所有的对象都存储在以.mdb为扩展名的数据库文件中。打开一个数据库就是打开一个数据库文件。就Access而言,可以认为数据库和数据库文件含义相同。Access数据库不但包括各种对象,还包括对各种对象的操作。2.2Access的特点1.一个文件管理整个系统2.真正的关系数据库管理3.典型的开放式数据库管理4.完善的帮助功能5.利用Excel整理数据6.拥有大量的内置函数7.提供了许多宏8.方便的网络功能2.3Access2003的新增功能1.查看对象相关性的信息2.窗体和报表间的错误检查3.传播字段属性4.智能标记5.备份数据库或项目6.WindowsXP主题支持7.控件增强的排序功能8.自动更正功能9.SQL视图中的增强字体功能10.导入、导出和链接2.4Access的基本操作2.4.1Access的启动和退出♦启动Access和启动Word的方法一样,有3种:(1)双击桌面上的Access图标。(2)单击任务栏上的“开始”按钮,在弹出的菜单中选“程序”项,在弹出的级联菜单中单击“MicrosoftAccess”。(3)双击Access数据库文件(建议尽量不用此法)。♦用前两种方法启动Access2003就打开了Access主窗口(下页)。该窗口的右侧是任务窗格的“新建文件”模式。♦用第3种方法启动Access后就立即打开了该数据库文件,并打开该数据库的“数据库”窗口(下图中的内窗口)。♦Access主窗口和“Word”窗口很相似,有标题栏、菜单栏、工具栏、工作区和状态栏。♦Access工作界面的工作区内可以显示包括“数据库”窗口在内的各种子窗口。♦菜单栏下面是“数据库”工具栏。♦“数据库”窗口中工具栏的按钮自左至右分别是:打开、设计、新建、删除、大图标、小图标、列表、详细信息。前4个按钮用来打开、设计、新建或删除数据库的对象,后4个按钮用来选择对象的显示方式。♦退出Access和退出Word的方法完全相同。2.4.2使用联机帮助Access2002有四种获取帮助的方法。一、使用Office助手打开Office助手气球和助手图标有两种方法:(1)单击工具栏上的“MicrosoftAccess帮助”按钮;(2)选“帮助”菜单项,在其下拉式菜单中单击“MicrosoftAccess帮助(H)F1”项。右图的助手气球中间的对话框让用户输入问题,下部有“选项”和“搜索”两个按钮。♦在助手气球中输入想问的问题后单击“搜索”按钮(或按Enter键),则助手气球中就出现关于该问题的几个搜索主题和“请看下一页”按钮(下图)。♦助手图标和助手气球可分别隐藏(关闭)。♦单击上页图中的某搜索主题(或前面的指示灯),就打开了显示该主题的“MicrosoftAccess帮助”窗口。♦单击“选项”按钮就进入了下页图所示的“Office助手”对话框。若选中“选项”选项卡就可以进行有关功能的设置。若选中“助手之家”选项卡则可以选择Office助手形象。二、使用MicrosoftAccess帮助上页图中的“响应F1键”选项的含义是:若选中该项,按F1就打开2.4.2图所示的助手气球;若取消该选项,按F1就打开下页图所示的“MicrosoftAccess帮助”窗口;该窗口有“目录”、“应答向导”和“索引”3个选项卡。如果在窗体或报表的“设计”视图选中具体控件后按F1,则显示这类控件的说明。“MicrosoftAccess帮助”窗口的左窗格显示目录、提问框或关键字(分别对应三个选项卡),右窗格显示与左窗格选中项相应的说明内容。本页图中左窗格选中的是“关于设计数据库”,右侧就是其说明内容。三、使用“键入需要帮助的问题”这是Access2003的新增功能。在Access主窗口的菜单栏右边有“键入需要帮助的问题”框。在这个框中输入主题词就可以得到帮助。如果输入:数据库,然后按Enter键就出现关于数据库的主题列表(右下图)。这个主题列表中列出了和数据库有关的问题,单击其中的“关于设计数据库”,就打开了上页图所示的“MicrosoftAccess帮助”窗口。四、使用“这是什么?”在“帮助”中单击“这是什么?”,鼠标变成箭头和问号组合的形状,然后将鼠标移到需要解释的主题处单击,就会显示关于该主题的说明。下图就是在“数据库”窗口使用“这是什么?”后单击“窗体”显示的该主题的说明。2.5Access数据库设计•表的设计是数据库管理系统最基础、最重要的工作。•表设计的好坏对数据库管理系统的功能有决定性的影响。•数据库中表的设计主要考虑这两个方面:一是整个管理系统的所有表中的数据要共享性高、冗余度小、占用尽可能小的存储空间;二是能方便维护表中的数据和快速地从表中获取数据。2.5.1数据库中表的设计方法•描述被参照关系和参照关系的表分别称为主表和子表。•主码和外码在Access数据库中称为主键和外键。•本书将仅含主键、不含外键的表称为基础表(包括主要用于编码的代码表),将含外键的表称为基本表,将由基础表和基本表生成的表称为生成表。•基础表和基本表是数据库设计的重要内容,它们的数据可以直接维护。生成表不是数据库直接设计的表,它的数据由查询生成,不应直接维护。•Access数据库表的设计方法如下:1.进行系统分析。2.提炼出将要作为数据库中表的字段。确定字段的原则是:表中的字段(即属性,将在2.6.1节介绍)应该是该管理事务所必须的、独立的字段。所谓独立包括两方面含义:(1)该字段是不能再分割的;(2)该字段不依赖于其它的字段。3.根据数据库管理的要求增加必要的字段。尤其是对有限数据集合的字段应该增加编码字段。4.设计数据库所必须的表。设计表的基本原则:(1)凡是有限数据集合应单独设计一个表(基础表);(2)除作为表间联系的主键和外键,不同的表中不能包含重复的字段;(3)表中的字段必须是直接取决于该表描述的实体;(4)定义表的主键,原则上每一个表都应定义主键。5.确定表间关系。只有确定了表间关系才算是完成了表的设计。通常都是在系统分析的基础上对表进行初步设计,以后还需要经过几次循环,反复修改才能得到理想的设计。还要考虑的一个问题是系统的可扩充性。2.5.2学生管理数据库表的设计本书所用的“学生管理”数据库的功能应包括以下几个方面(学期成绩=平时成绩×0.3+考试成绩×0.7):(1)学生选修课程和考试成绩维护(包括输入、修改和删除)。(2)按学号查询学生选修的课程和考试成绩。(3)按课程查询选修的人数。(4)按班级或个人或课程对成绩进行排序、筛选、统计和查询。(5)按班级打印学生考试成绩表。(6)按个人打印成绩通知单。其它需求有:(1)对学生的基本情况进行查询,包括学生的学号、姓名、性别、出生年月日、身高、所在班级、家庭所在地、家庭人均月收入等。(2)对班级人数进行统计、查询。(3)打印班级学生名单。根据管理的实际需要还应该补充以下功能:学生、课程和学生选课及成绩等基本信息的输入、修改、删除和查询。•根据问题的需求,如下字段是必需的:学号、姓名、性别、出生年月日、所在班级、家庭所在地、家庭人均月收入、课程名称、平时成绩和考试成绩等字段。但班级人数、课程选修人数、学期成绩等统计数据不能作为字段。•如果只用一个表把上述所有字段都包括进去在理论上是可以的,但是这样处理会引起许多问题。因为每个学生都可以选修多门课程、每门课程也都可以有多人选修。仅用一个表势必要将每个学生的学号、姓名、性别、出生年月日、所在班级、课程名称等内容多次重复输入,既费时费力、占据大量的存储空间,又可能引起输入数据的不一致。•根据以上分析,可考虑用两个表:将不涉及选课的个人信息和仅与选课有关的信息分别设计成“学生情况”和“选课及成绩”两个表:1.学生情况,含学号、所在班级、姓名、性别、出生年月日、身高、家庭所在地、家庭人均月收入、是否团员等9个字段;2.选课及成绩,含学号、姓名、课程名称、平时成绩和考试成绩等5个字段。这两个表通过学号建立联系。这个方案存在的问题。•设计成4个表(花括号中是各字段的数据类型和长度(将在2.7.1节介绍),下同)的方案:1.班级简况,含班级代号{文本,5}、班级名称{文本,8}两个字段。2.学生情况,含学号{文本,7}、班级代号{文本,5}、姓名{文本,6}、性别{文本,1}、出生年月日{日期/时间}、身高(cm){数字,字节}、是否住宿{文本,1}、家庭所在地{文本,4}、家庭人均月收入{货币}、是否团员{是/否}等9个字段。3.课程档案,含课程号{文本,4}、课程名称{文本,16}、总学时{数字,字节}3个字段。4.选课及成绩,含学号{文本,7}、课程号{文本,4}、平时成绩{数字,字节}、考试成绩{数字,字节}、考试日期{日期}4个字段。下图是在Access数据库中对这4个表间关系的表达。其中两个表间关系连线两端的“1”和“∞”表示实施了参照完整性。2.5.3教工管理数据库表的设计本书所用的“教工管理”数据库的功能应包括这几个方面:(1)教师任课情况和教学效果维护(包括输入、修改和删除)。(2)按教工编号查询教师所任的课程和教学效果。(3)按课程查询任课教师。(4)按技术职称或文化程度对教工进行排序、筛选、统计和查询。(5)按姓名打印教师任课情况表。(6)按部门打印教工个人情况表。其它需求有:(1)对教工的基本情况进行查询,包括教工的教工编号、姓名、性别、出生年月日、技术职称、文化程度、月工资、家庭电话等。(2)对部门人数进行统计、查询。(3)打印部门教工名单。根据管理的实际需要还应该补充以下功能:教工、课程和任课情况等基本信息的输入、修改、查询和删除。经过和学生管理数据库表的设计类似的分析、设计过程,可以得到包括以下7个表的一种设计方案。1.部门简况,含部门代号{文本,3}、部门名称{文本,6}、办公地点{文本,6}3个字段。2.文化程度编码,含文化程度编码{文本,2}、文化程度{文本,6}两个字段。3.技术职称编码,含技术职称编码{文本,2}、技术职称{文本,6}两个字段。4.教学效果编码,含教学效果编码{文本,1}、教学效果{文本,2}两个字段。5.教工情况,含教工编号{文本,5}、部门代号{文本,3}、姓名{文本,6}、性别{文本,1}、出生年月日{日期/时间}、技术职称编码{文本,2}、文化程度编码{文本,2}、婚姻状况{文本,2}、基本工资{货币}、奖金{货币}、家庭电话{文本,12}等10个字段。6.课程档案,含课程号{文本,4}、课程名称{文本,10}、总学时{数字,字节}3个字段。7.任课情况,含职工编号{文本,7}、课程号{文本,4}、教学效果编码{文本,1}3个字段。下图是Access数据库对这些表间关系的表达。【说明】(1)对于同一个实际问题可以有不同的设计方案。但是,必须依据第1章介绍的数据库的基本原理进行分析,按规范化的要求设计表。(2)对班级名称、部门名称、课程名称,以至于技术职称、文化程度、教学效果等有限数据集合字段进行编码是提高数据的共享性、减小它的冗余度的有效措施。2.6数据库对象•Access数据库是数据和对象组成的集合。•Access数据库对象包括表、查询、窗体、报表、页、宏和模块等。•用Access新建或打开一个数据库会同时打开一个数据库窗口(下页图)。•“数据库”窗口显示已打开的数据库包含的所有对象,并提供