任务9.3 创建数据库和表
9.3.1 任务要点
任务要点如下。
♦ Access 2016的启动与退出。
♦ 新建和保存数据库。
♦ 创建表。
♦ 设置字段。
♦ 设置主键。
♦ 设置外键。
♦ 维护表结构。
♦ 创建索引。
♦ 创建查询。
♦ 创建关系。
♦ 排序筛选。
9.3.2 知识准备
9.3.2.1 Access 2016基础
1. 启动
启动Access 2016有多种方法,常用的有3种,即使用“开始”菜单、快捷方式和已有的Access 2016数据库文件。
2. 退出
退出Access 2016的常用方法如下。
(1)在Access 2016窗口中选择“文件”→“退出”命令。
(2)单击Access 2016窗口标题栏右上角的“关闭”按钮。
(3)双击Access 2016窗口左上角的控制菜单图标或按Alt+F4组合键。
3. 用户界面
Access 2016的用户界面如图9-29所示。
图9-29 Access 2016的用户界面
创建或打开数据库之后会出现包含功能区和导航窗口的Access 2016界面,如图9-30所示。
图9-30 包含功能区和导航窗口的Access 2016界面
功能区将菜单栏、工具栏、任务窗格和其他用户界面组件显示的工具或命令集中在一个区域,大大方便了用户的操作。打开数据库后功能区在窗口的顶部(标题栏下),其中显示活动命令选项卡中的命令按钮及标题栏,只需双击标题即可显示与隐藏功能。
命令选项卡是功能区的组成部分,每个命令选项卡包含多个命令组,每个组中包含若干个命令按钮。有些组默认仅显示该组部分命令按钮,单击该组右下角的按钮即可显示该组的全部命令按钮。除了可切换显示“开始”“创建”“外部数据”或“数据库工具”等标准命令选项卡外,Access 2016将根据操作对象当前的上下文,在功能区中添加一个或多个上下文命令选项卡。例如,在打开某个表后,在功能区中随之显示“表格工具”下该表的上下文命令选项卡。
导航窗格位于功能区的下方左侧,可以帮助用户组织、归类数据库对象,并且是打开或更改数据库对象设计的主要方式。该窗口取代了Access 2007之前版本中的“数据库窗口”。
工作区位于功能区的右下侧(导航窗格的右侧),用于显示数据库中的各种对象。在工作区中,通常是以选项卡形式显示出所打开对象的相应视图(如表的“设计视图”和“数据表视图”,以及窗体的“窗体视图”等)。在Access 2016中可以同时打开多个对象,在工作区顶端显示所有已经打开对象的选项卡标题,并且在工作区中显示活动对象选项卡的内容。单击工作区顶端某个对象选项卡的标题,在工作区中切换显示该对象选项卡的内容,即把该对象选项卡设为活动对象选项卡。
状态栏位于Access 2016窗口的底端,用于显示当前工作状态。状态栏左端有时会显示工作区中当前活动对象的视图名(如“设计视图”“数据表视图”等),状态栏右端有几个与工作区中活动对象相关的(用于切换的)视图按钮。
快速访问工具栏的默认位置是在Access 2016窗口顶端标题栏中的左侧,用户只需单击其中的按钮即可访问命令,默认命令集有“保存”“撤销”和“恢复”。用户单击快速访问工具栏右侧的下拉按钮,在下拉列表中选择相应命令可以自定义快速访问工具栏,将常用的其他命令包含在内。用户还可以修改该工具栏的位置,并且将其从默认的小尺寸改为大尺寸。小尺寸工具栏显示在功能区中命令选项卡的旁边,切换为大尺寸后将显示在功能区的下方并展开到屏幕宽度。
9.3.2.2 创建数据库
例如,在F盘根目录下的文件夹“Student”中创建一个名为“学生管理.accdb”的数据库,操作步骤如下。
(1)启动Access 2016,选择左边“新建”导航栏。
(2)单击右边“空白数据库”按钮,打开“空白桌面数据库”界面,如图9-31所示。
图9-31 “空白桌面数据库”界面
(3)单击“文件夹”按钮,弹出“文件新建数据库”对话框,如图9-32所示。
图9-32 “文件新建数据库”对话框
(4)选择“F:\Student”文件夹,在“文件名”下拉列表框中输入“学生管理”。
(5)单击“确定”按钮,回到“空白桌面数据库”界面。
(6)单击“创建”按钮,成功创建数据库。
Access 2016附带很多模板,也可以从Office.com下载更多模板。Access 2016是预先设计的数据库,其中包括专业设计的表、窗体和报表,可为用户创建数据库提供极大便利。
例如,在F盘根目录下的文件夹“Student”中使用模板创建一个名为“资产跟踪.accdb”的数据库,操作步骤如下。
(1)启动Access 2016,在显示的列表中选择“资产跟踪”选项,显示“资产跟踪”界面,如图9-33所示。
图9-33 “资产跟踪”界面
(2)单击“文件名”下拉列表框右边的图标(浏览到某个位置来存放数据库),弹出“文件新建数据库”对话框。
(3)选择E盘根目录下的“Student”文件夹,如图9-34所示。
图9-34 “Student”文件夹
(4)单击“确定”按钮,返回“资产跟踪”界面。
(5)单击“创建”按钮,Access 2016在“E:\Student”文件夹中新建一个文件名为“资产跟踪”的数据库,并自动打开,如图9-35所示。
图9-35 打开“资产跟踪”数据库
(6)单击“安全警告”提示栏中的“启用内容”按钮,打开“资产跟踪”数据库的窗口。
(7)双击左侧窗口的“资产:表”,打开“资产列表”,如图9-36所示。
图9-36 “资产列表”
9.3.2.3 数据库对象
Access 2016数据库中包含表、查询、窗体、报表、宏、模块等6个对象,在导航窗格显示的分类对象列表(如“查询”对象列表)中双击某个对象,则该对象的相应视图(如“数据表视图”)就会显示在工作区的窗格中。
下面以本书提供的资源文件中“罗斯文贸易”数据库为例,简要介绍这些对象。
(1)表。
表指关系数据库中的二维表,它是Access 2016数据库中最基本的对象。表对象被称为“信息存储器”,是数据库的基础。Access 2016数据库中的数据以表的形式保存。通常在建立了数据库之后,首要的任务就是建立其中的各个表。
例如,双击打开“罗斯文贸易”数据库,打开如图9-37所示的“登录对话框”界面。选择“王伟”员工,单击“登录”按钮。
图9-37 “登录对话框”界面
在“罗斯文贸易”数据库中已建的表对象包括“订单”“订单明细”等,双击左边导航窗格中表对象列表的“订单”表对象打开其数据表视图,如图9-38所示。
图9-38 “订单”表对象的数据表视图
(2)查询。
查询对象实际上是执行一个查询命令,打开查询对象即可检索满足指定条件的数据库信息。实质上查询是一个SQL语句,用户可以利用Access 2016提供的命令工具以可视化的方式或直接编辑SQL语句的方式来建立查询对象。
例如,在“罗斯文贸易”数据库中已建的查询对象包括“按类别产品销售”“按日期产品分类销售”等选项。双击左边导航窗格中查询对象列表的“按类别产品销售”选项,即可打开“按类别产品销售”查询对象的查询视图,如图9-39所示。
图9-39 “按类别产品销售”查询对象的查询视图
(3)窗体。
窗体对象是用户和数据库之间的人机交互界面,在其中用户不但可以浏览数据,还可以执行其他操作。一个设计良好的窗体可以将表中的数据以更加友好的方式显示出来,从而方便用户浏览和编辑。也可以简化用户输入数据的操作,尽可能避免因人为操作不当而造成失误。
例如,在“罗斯文贸易”数据库中已建窗体对象包括“按类别产品销售图表”“按员工产品销售图表”等。双击左边导航窗格中的窗体对象列表中的“按类别产品销售图表”窗体对象,即可打开其窗体视图,如图9-40所示。
图9-40 “按类别产品销售图表”窗体的窗体视图
(4)报表。
报表是数据管理中需要输出的内容,它是对表中的数据或查询内容执行分组、排序或统计等操作的结果。报表对象对大量的数据表数据进行综合处理,并把结果生成报表。
例如,在“罗斯文贸易”数据库中已建报表对象包括“按类别产品销售”“按员工产品销售量”等报表。双击左边导航窗格中的报表对象列表中的“按类别产品销售”报表对象,即可打开其报表视图,如图9-41所示。
图9-41 “按类别产品销售”报表对象的报表视图
(5)宏。
宏是一系列操作命令的组合。在操作数据库时,有些任务需要经过繁琐的操作过程并执行多个命令才能完成。如果需要经常执行这些任务,则可以将执行这些任务的一系列命令记录下来组成一个宏。这样以后只要执行宏就能完成相应的任务,从而简化了操作,提高了工作效率。宏分为独立宏、嵌入宏及数据宏,在导航窗格中的宏对象列表中仅列出全部的独立宏。
例如,在“罗斯文贸易”数据库中已建立的独立宏对象,包括“AutoExec”和“删除所有数据”两个独立宏。右击左边导航窗格中的宏对象列表中的“删除所有数据”宏对象,在弹出的快捷菜单中选择“设计视图”命令即可打开“删除所有数据”宏对象的设计视图,如图9-42所示。
图9-42 “删除所有数据”宏对象的设计视图
(6)模块。
在Access 2016中创建模块使用的是VBA(Visual Basic For Application)语言,它是Office系列软件的内置编程语言,也是一种面向对象的可视化编程语言。模块是由VBA声明和过程组成的集合,说明如下。
• 声明部分用来声明变量或常量的数据类型。
• 过程是VBA代码的集合,其中包含一系列VB语句和方法,用来执行数据计算或操作。
在Access中有如下两种类型的模块。
• 类模块:可以用来定义新对象的模块,包含属性和方法的定义。
• 标准摸块:指存储在数据库中的通用过程和常用过程。
通用过程是不与任何对象相关联的过程,只能由其他过程来调用;常用过程是指在数据库中的任何位置均可执行的过程。
例如,在“罗斯文贸易”数据库中已建模块对象包括“错误处理”“采购订单”等。双击左边导航窗格中的模块对象列表中的“错误处理”模块对象,即可打开其设计视图,如图9-43所示。
图9-43 “错误处理”模块对象的设计视图
9.3.2.4 打开与关闭数据库
在Access 2016中创建一个数据库之后,默认保存为以“accdb”为扩展名的数据库文件。打开数据库有以下4种方式。
(1)以共享方式打开:网络上的其他用户也可以打开并编辑这个数据库文件,为默认方式。
(2)以只读方式打开:不可以修改该数据库文件。
(3)以独占方式打开:防止网络上的其他用户同时访问这个数据库文件。
(4)以独占只读方式打开:防止网络上的其他用户同时访问这个数据库文件,而且不允许修改。
打开一个已经存在的“营销项目.accdb”(见本书提供的资源文件)数据库的操作步骤如下。
(1)启动Access 2016。
(2)在左侧的导航窗口中单击“打开”按钮,显示“打开”界面,如图9-44所示。
图9-44 “打开”界面
(3)最近打开的文件会出现在列表中,如果没有,双击“这台电脑”图标,选择要打开的数据库文件的位置和文件名。
(4)单击“打开”按钮,弹出“打开”对话框。
(5)选择“营销项目”选项,单击“打开”按钮,以默认打开方式打开该数据库。
若要以其他方式打开该数据库,则单击“打开”按钮右端的下拉按钮。然后单击下拉列表框中的所需方式,4种打开方式如图9-45所示。
图9-45 4种打开方式
关闭数据库的两种常用方式如下。
(1)选择“文件”选项卡中的“关闭数据库”命令。
(2)单击Access 2016窗口右上角的“关闭”按钮,关闭当前数据库及Access 2016。
9.2.3.5 表
表是数据库的核心,其中记录了数据库的全部数据。对象都以表中的数据为基础,没有表的数据库是没有意义的。所有表都基于数据库,创建一个表之前必须打开一个数据库,表示创建的表属于该数据库。
1. 创建表
一个数据库可以包含多个表,表将数据组织成列和行的二维表形式。表由表结构和表内容组成,表结构是指表头中每个字段的字段名、字段类型和字段属性等;表内容是表体,即表中的记录。一般来说,创建表先创建表结构,包括构造表中各个字段、定义数据类型、设置字段属性、设置表的主键等,然后在表中输入数据。
在Access 2016窗口中打开某个数据库,如打开“学生管理”数据库。在“创建”选项卡的“表格”组中有3个按钮用于创建表,如图9-46所示。
图9-46 “表格”组中的3个按钮
通过以下4种方式可以在数据库中创建一个新表。
(1)使用数据表视图直接插入一个表。
(2)使用表设计视图创建表。
(3)使用SharePoint列表创建表。
(4)利用其他数据文件,如Excel工作簿、Word文档、其他数据库等多种文件导入表或链接到表。
Access 2016提供了利用SharePoint网站来创建表的方法,用户可以从该网站的SharePoint列表中导入表或者创建链接到该列表中的表,还可以使用预定义模板创建这个列表。
本节主要介绍如何使用数据表视图和表设计视图创建表。
(1)使用数据表视图创建表。
例如,在“学生管理”数据库中,使用数据表视图创建表的方法创建一个名为“学生”的表,操作步骤如下。
• 打开“学生管理”数据库,单击“创建”选项卡“表格”组中的“表”按钮。系统创建一个名为“表1”的新表并以数据表视图打开,如图9-47所示。
图9-47 创建名为“表1”的新表
• 打开“单击以添加”下拉列表框,选择需要添加字段的类型后输入字段名称,在“表格工具”的“字段”选项卡中设置“字段大小”。以此方法依次建立各个字段,图9-48所示为已建立各个字段的表。
图9-48 已建立各个字段的表
• 单击“快速访问”工具栏中的按钮,弹出“另存为”对话框。
• 输入表的名称“学生”,单击“确定”按钮。
创建表结构后可以直接在字段名称下面的单元格中依次输入数据。
在数据表视图中可以在字段名处直接输入字段名,还可以对表中的数据执行添加、修改、删除和查找等操作。
(2)使用表设计视图创建表。
使用表设计视图可以更加灵活地创建表比较复杂的表,单击“创建”选项卡中的“表设计”按钮,显示如图9-49所示的表设计视图。
图9-49 表设计视图
其中中间为工作区,分为上下两部分,分别是字段输入区和字段属性区;右边部分是属性表,用于设置表的一些属性。
例如,在“学生管理”数据库中使用表设计视图创建一个名为“课程”的表,操作步骤如下。
• 在字段输入区第1行的“字段名称”单元格中键入“课程号”,在“数据类型”单元格中选择“文本”,在字段属性区的“字段大小”单元格中键入“9”,按此方法依次建立“课程名称”“学分”等各个字段。
• 单击第1行的“课程号”单元格,然后单击“表格工具”下“设计”选项卡“工具”组中的“主键”按钮。在“课程号”左边的字段选定器框格中显示一个钥匙图标,表示该字段为主键,这时“课程”表的设计视图如图9-50所示。
图9-50 “课程”表设计视图
• 单击“关闭”按钮,弹出提示对话框。
• 单击“是”按钮,弹出“另存为”对话框。
• 键入表的名称“课程”,单击“确定”按钮,完成表的创建并关闭设计视图。此时导航窗格中添加了一个名为“课程”的表,如图9-51所示。
图9-51 名为“课程”的表
2. 修改表的结构
在表设计视图中不仅可以方便地创建表,还可以对已建立的表进行修改。如果要修改表结构,应注意有两个可能会导致数据丢失的情况,一是当“字段大小”由较大范围改为较小范围时;二是当“字段类型”发生改变时。
例如,在创建表结构没有设置主键时,会自动创建一个名为“ID”的字段。当选中该字段列,单击“表格工具”下“字段”选项卡的“删除行”按钮删除主键,如图9-52所示。
图9-52 删除主键
这时会弹出一个如图9-53所示的提示对话框。提示用户该列不能删除。这是因为在使用数据表视图创建表时,Access 2016自动创建一个类型为自动编号的“ID”字段并默认为新表的主键。
图9-53 提示对话框
下面对“学生”表进行修改和完善,并删除“ID”字段,设置主键为“学号”。
操作步骤如下。
(1)单击导航窗格中的“表”对象,展开表对象列表。
(2)右击“学生”表,选择快捷菜单中的“设计视图”命令,打开“学生”表的设计视图。如果已打开表的数据表视图,则可以单击状态栏右下方的“设计视图”按钮切换至设计视图。
(3)单击“ID”字段,选定该字段。
(4)单击“表格工具”中“设计”选项卡的“主键”按钮,“ID”字段的字段选定器上的钥匙图案消失。
(5)选定“ID”字段,单击“表格工具”中“设计”选项卡的“删除行”按钮,弹出提示对话框。
(6)单击“是”按钮。
(7)选定“学号”字段,单击“表格工具”中“设计”选项卡的“主键”按钮,“学号”的字段选定器显示一个钥匙图标。该字段被设置为主键,修改后的“学生”表的设计视图如图9-54所示。
图9-54 修改后的“学生”表的设计视图
(8)单击“保存”按钮。
(9)单击“关闭”按钮。
3. 字段的数据类型
Access 2016提供了12种不同类型的字段用来存放不同类型的信息,如图9-55所示。
图9-55 12种不同类型的字段
(1)短文本:最大占用255个字符。
(2)长文本:最大占用65 536个字符。
(3)数字:根据占用的内存空间大小和数据存储方式的不同划分如下。
• 字节:占用1个字节。
• 整型:占用2个字节。
• 长整型:占用4个字节。
• 单精度型:占用4个字节,保留7位小数。
• 双精度型:占用8个字节,保留15位小数。
• 同步复制ID(GUID):固定占用16个字节,用于唯一标识一条记录。
• 小数:占用12个字节,保留28位小数。
(4)日期/时间:占用8个字节。
(5)货币:占用8个字节。
(6)自动编号:该类型字段不能更新,占用4个字节,用于“同步复制ID”(GUID)时存储16个字节。
(7)是/否:不允许Null值,占用1个二进制位。
(8)OLE对象:一种可用于在程序之间共享信息的程序集成技术,所有Office程序都支持OLE,所以可通过链接和嵌入对象共享信息,最大占用1 GB。
(9)超链接:用于存储超链接地址,可以是UNC路径或URL,最多允许64 000个字符。
(10)查阅向导:让用户通过组合框或列表框选择来自其他表或值列表中的值,实际的字段类型和长度取决于数据的来源。
(11)附件:任何支持的文件类型,最大支持约700 KB。
(12)计算:表达式或结果类型是双精度型,含小数,占用8字节,见数据类型说明。
4. 设置字段属性
设置字段属性主要包含以下几个方面。
(1)设置字段大小。
(2)设置字段格式,格式是指数据的显示或打印形式。即仅是数据的一种外部表现形式,内部存储的数据并不改变。在表中设置的格式属性将自动作用于查询、窗体或报表对象中的字段或相应的控件。
文本与备注型字段常用的格式符如下。
• @:每个@占据一个字符位,如将文本型字段“学号”的“格式”属性设置为@-@@@时。当输入“E001”时,将会显示“E-001”。
• <:将所有输入的字符以小写显示。
• >:将所有输入的字符以大写显示。
(3)设置小数位。
(4)设置输入掩码,输入掩码是指能起到控制向字段输入数据作用的字符。主要用于文本型和日期/时间型字段,也可以用于数字型和货币型字段。
常见的输入掩码字符如下。
• 0:数字(0~9,必选项,不允许使用加号和减号)。
• 9:数字或空格(非必选项,不允许使用加号和减号)。
• #:数字或空格(非必选项,空白将转换为空格,允许使用加号和减号)。
• L:字母(A~Z,必选项)。
• A:字母或数字(必选项)。
(5)设置标题,为字段名设置一个显示标题,目的是反映字段代表的意义,但并不改变表内部的字段名称。
(6)设置默认值,默认值是指增加记录时自动添加到字段的值,不能对“自动编号”和“OLE对象”数据类型设置默认值。
(7)设置字段有效性规则与有效性文本:字段有效性规则可以用表达式来描述,其作用是在用户离开该字段时自动检查输入字段的值是否符合指定的规则。并在违反规则时通过弹出信息窗口显示“有效性文本”,提示用户应该怎样正确地输入数据。有效性规则也可作用于记录,记录的有效性规则不可以包括对表中的其他字段的引用。
(8)设置必填字段与允许空字符串。
• “必填字段”属性控制是否必须输入数据,如果设置为“是”,则必须输入该字段值,而且不能是Null值。
• “允许空字符串”属性决定是否允许长度为0的不包含任何字符的空字符串(该属性只能用于“文本”“备注”或“超级链接”字段)。
使用这两个属性的不同组合可以控制对空白字段的处理。
空字符串表示一个确切的值,而Null值表示未知、不确定的值。输入Null值的方法是,直接按下Enter键;而输入空字符串的方法是键入不带空格的双引号(“”)。
字段格式属性设置如图9-56所示。
图9-56 字段格式属性设置
5. 表的基本操作
(1)打开表。
打开表是指在数据库视图中打开表,操作步骤如下。
• 单击导航窗格中的数据库对象列表中的“表”。
• 在展开的表对象列表中双击要打开的表,或者右击要打开的表,在弹出的快捷菜单中选择“打开”命令。打开一个新选项卡显示该表的数据库视图,以二维表格的形式显示表中的数据。
(2)关闭表。
单击某个已打开表的“数据表视图”右上角的“关闭”按钮。
(3)在表中添加、修改或删除记录。
打开一个表后即可在数据表视图其中直接添加、修改或删除记录,注意被设置为主键的字段内容不可以重复,也不可以为空值。
单击单元格可以添加或修改记录。单击选定某个该记录,或通过拖动连续选择多个记录。然后单击“开始”选项卡的“删除”按钮或按Delete键可以删除记录,如图9-57所示。
图9-57 删除记录
6. 排序表中记录
排序是根据当前数据表中的一个或多个字段的值重新排列整个数据表中全部记录的顺序,可以按升序或降序排序,排序结果可与表一起保存。
(1)只按一个字段排序。
• 打开要排序表的数据表视图。
• 单击排序字段所在列的任意一个数据单元格。
• 单击“开始”选项卡的“排序和筛选”组中的“排序”按钮显示排序结果,还可以单击排序字段右侧的下拉箭头,打开下拉菜单。选择“升序”或“降序”命令,如图9-58所示。
图9-58 “升序”或“降序”命令
• 关闭该表的数据表视图时,可以选择是否将排序结果与表一起保存。
(2)按多个字段排序。
如果要对多个字段进行复杂排序,则要使用“高级筛选/排序”命令,操作步骤如下。
• 打开要排序表的数据表视图。
• 单击“开始”选项卡“排序和筛选”组中的“高级”按钮,在弹出的下拉列表框中选择如图9-59所示的“高级筛选/排序”命令。
图9-59 “高级筛选/排序”命令
打开一个排序筛选设计窗口,上方显示该表的字段列表;下方是设置排序和筛选条件的设计网格,如图9-60所示。
图9-60 排序筛选设计窗口
• 在设计网格中“字段”行的单元格中从左到右依次选择要排序的字段,在“排序”行的单元格中选择“升序”或选择“降序”命令。
• 选择“排序和筛选”组中的“切换筛选”命令或单击“高级”按钮,在弹出的下拉列表框中选择“应用筛选/排序”命令,显示如图9-61所示的排序结果。
图9-61 排序结果
7. 筛选表中记录
筛选操作是用户通过指定一些条件来查看表中的部分记录,指定的条件即为筛选条件。所有的筛选命令都可以通过选择“开始”选项卡的“排序/筛选”组中的“取消筛选”命令来取消筛选结果,恢复表的原来面貌。
(1)按选定内容筛选。
按选定内容筛选实际上就是每次给出一个对应的筛选条件,单击“开始”选项卡的“排序和筛选”组中的“选择”命令。在打开的下拉菜单中选择“等于”选中字段的值,即可得到筛选结果。也可以单击字段名右侧的下拉箭头按钮选择筛选条件,单击“确定”按钮得到筛选结果。
如果需要进一步筛选,则可以按上述方法重复执行,但每次只能给出一个条件;此外,“选择”命令还根据字段的不同数据类型提供了多种筛选条件。例如,文本类型还有“包含”“不包含”等设置条件。单击学号字段的或图标,在弹出的列表中选择“文本筛选器”的筛选条件即可,如图9-62所示。
图9-62 选择筛选条件
(2)高级筛选。
使用“高级筛选/排序”功能可以方便地执行较为复杂的筛选并可对结果进行排序,该功能允许用户在一个“筛选”窗口中同时给出筛选条件及排序要求来筛选记录。在“筛选”窗口中指定筛选条件时,同一“条件”行中的条件与条件之间是“And”(与)的关系,不同“条件”行之间的条件是“Or”(或)的关系。“高级筛选/排序”命令如图9-63所示。
图9-63 “高级筛选/排序”命令
“高级筛选/排序”窗口如图9-64所示。
图9-64 “高级筛选/排序”窗口
如果在“筛选”窗口中指定筛选条件时在某一单元格中输入一个值,则表示选定字段等于该值,相当于省略了“等于”运算符。需要指定大于或小于等比较运算符时,需要直接键入“>”(大于)、“<”(小于)、“>=”(大于或等于)、“<=”(小于或等于)或“<>”(不等于)比较运算符。
在指定“是/否”类型字段的条件时,需要在对应条件单元格中键入“True”或“False”。还可输入“-1”表示“True”,或者输入“0”表示“False”。
设置所有的排序与筛选条件后,单击“排序和筛选”组中的“切换筛选”命令或者单击“高级”按钮,在弹出的下拉菜单中选择“应用筛选/排序”命令显示排序和筛选结果。
8. 查找表中的数据
在“数据表视图”窗口中,把光标定位到所要查找的字段上,选择“开始”选项卡的“查找”命令显示“查找和替换”对话框的“查找”选项卡,如图9-65所示。
图9-65 “查找和替换”对话框的“查找”选项卡
在“查找内容”下拉列表框中输入要查找的内容。
依次打开下方的各个下拉列表框,选择合适的查找范围与方式。然后单击“查找下一个”按钮,定位到离光标位置最近的一个记录,可逐次单击该按钮直至结束。
另外,在数据表视图的记录导航条后部的搜索栏中,输入要查找的内容,光标则定位到找到的位置。按Enter键可查找到下一个位置,如图9-66所示。
图9-66 在搜索栏中执行查找操作
这种简单的查找是对当前表从上往下进行字段的匹配查找。
9. 替换表中的数据
替换表中数据的操作步骤如下。
(1)在数据表视图中把光标定位到所要替换的字段,单击“开始”选项卡“查找”组中的按钮打开“查找和替换”对话框的“替换”选项卡,如图9-67所示。
图9-67 “替换”选项卡
(2)在“查找内容”下拉列表框中输入要查找的内容,然后在“替换为”下拉列表框中输入要替换的内容。依次单击下方的各个下拉列表框,选择合适的查找范围与方式。
(3)如果要替换全部匹配条件者,单击“全部替换”按钮;如果一次替换一个或跳过某个匹配值,则单击“查找下一个”按钮后单击“替换”按钮。
10. 重命名表
(1)打开某个数据库,在导航窗口中单击“表”,展开表对象的列表。
(2)右击该列表中要重命名的表名,弹出快捷菜单。
(3)选择快捷菜单中的“重命名”命令,进入表名的编辑状态,输入新表名后按Enter键。
11. 删除表
(1)打开某个数据库,在导航窗格中单击“表”,展开表对象的列表。
(2)右击该列表中要删除的表名,弹出快捷菜单。
(3)选择快捷菜单中的“删除”命令,弹出“是否删除表”对话框,单击“是”按钮。
注意如果该表受到“实施参照完整性”约束,暂时不能删除时,系统会显示“只有删除了与其他表的关系之后才能删除该表”的提示框。
12. 复制表
复制表结构或将数据追加到已有表的操作步骤如下。
(1)打开某个数据库,在导航窗格中单击要复制其结构或数据的表。
(2)单击“开始”选项卡“剪贴板”组中的“复制”按钮。
(3)单击“开始”选项卡“剪贴板”组中的“粘贴”按钮,弹出“粘贴表方式”对话框,如图9-68所示。
图9-68 “粘贴表方式”对话框
(4)在“表名称”文本框中输入随后要操作表的名称。
(5)若仅要粘贴表的结构,则选中“粘贴选项”下的“仅结构”单选按钮;若要粘贴表的结构和数据,则选中“结构和数据”单选按钮;若要将数据追加到已有的表中,则选中“将数据追加到已有的表”单选按钮(注意此时“表名称”文本框中已输入的表名称应该在表对象列表中存在)。
(6)单击“确定”按钮。
13. 设置主键和索引
主键是指能够唯一标识记录的某个字段或某几个字段的组合,为确保主键取值的唯一性,Access 2016将防止在主键中输入任何重复值或Null值并且始终维护主键的唯一索引。在Access 2016中可以创建3种类型的主键,即自动编号主键、单字段主键和多字段主键。
多字段主键设置只需要同时选中多个字段,然后单击主键按钮或右击选择主键即可。设置主键如图9-69所示。
图9-69 设置主键
索引是使记录有序化的另一种技术,它并不真正从物理上移动记录,而是在逻辑上维持要求的记录排列顺序。不论是排序还是索引,都是为了加快数据查找速度。Access 2016已经为表中的主键字段自动设置了索引,附件、计算、备注型、OLE型和逻辑型字段不能用来作为索引。有两种类型索引,即单字段索引和多字段索引,设置索引操作如图9-70所示。
图9-70 设置索引操作
14. 外键约束
外键约束是确保表中数据正确性的一种手段,经常与主键约束一起使用。它用来约束两个表中数据的一致性,即将一个表中的主键设置为另外一个表的外键。例如,“学生管理”数据库中已经有了“学生”表和“课程”表,它们之间现在没有关系。所以需要创建一个“成绩”表,如图9-71所示。
图9-71 “成绩”表
“成绩”表中的“学号”和“课程号”是外键,分别取自“学生”表和“课程”表的课程号。而它们又各自是“学生”表和“课程”表的主键,这样“学生”表和“课程”表就与“成绩”表有了外键约束。设置外键约束的步骤如下。
(1)打开“数据库工具”选项卡,其中的“关系”按钮如图9-72所示。
图9-72 “关系”按钮
(2)单击“关系”按钮,弹出“关系”界面。
(3)拖动“学生”表中的“学号”字段到“成绩”表的“学号”字段上,弹出如图9-73所示的“编辑关系”对话框。
图9-73 “编辑关系”对话框
(4)设置“学生”表与“成绩”表中相关联的字段,然后单击“创建”按钮。
(5)设置“学生”表、“课程”表与“成绩”表的关系,如图9-74所示。
图9-74 设置“学生”表、“课程”表与“成绩”表的关系
15. 查询
在Access 2016数据库中,表是存储数据的最基本的数据库对象,而查询则是对表中的数据进行检索、统计、分析、查看或更改的一个非常重要的对象。一个查询对象就是一个查询命令,即一个SQL命令,运行一个查询对象实质上就是执行其中的SQL命令。
表根据规范化的要求将数据进行了分割,而查询则是从不同的表中抽取数据组合成一个动态数据库,并以数据表视图的方式显示。查询结果是一个临时的动态数据表,当关闭查询的数据表视图时保存的是查询的结构,并不保存该查询结果的动态数据表。
表和查询都是查询的数据源,也是窗体、报表的数据源。
建立多表查询之前,一定要建立表与表之间的关系(外键约束)。
打开某个数据库,如“学生管理”数据库。在“创建”选项卡的“查询”组中有“查询向导”和“查询设计”两个按钮,均可用于创建查询。单击“查询向导”按钮,弹出“新建查询”对话框。其中显示4种创建查询的向导,分别是“简单查询向导”“交叉表查询向导”“查找重复项查询向导”和“查找不匹配项查询向导”。用户可根据需求选择并按向导提示完成操作,如图9-75所示。
图9-75 4种创建查询的向导
(1)使用向导创建查询。
若要在“学生管理”数据库中为“学生”表创建一个名为“学生表 查询学号姓名”的查询,要求只显示“学号”和“姓名”,操作步骤如下。
• 打开“学生管理”数据库,单击“创建”选项卡中“查询”选项组中的“查询向导”按钮,弹出“新建查询”对话框。
• 选择“简单查询向导”选项,单击“确定”按钮,弹出“简单查询向导”对话框。
• 选择“表/查询”下拉列表框中的“表:学生表”选项,在“可用字段”列表框中依次选择“学号”和“姓名”字段后拖动至“选定字段”列表框中,如图9-76所示。
图9-76 选择表和查询的字段
• 单击“下一步”按钮,显示如图9-77所示的“简单查询向导”对话框。
图9-77 “简单查询向导”对话框
• 输入查询标题,并选择“打开查询查看信息”单选按钮。
• 单击“完成”按钮,以如图9-78所示的以数据表视图方式显示查询结果。
图9-78 以数据表视图方式显示查询结果
(2)在设计视图中创建查询。
若要建立复杂的查询,则要借助于设计视图。使用设计视图创建查询不仅可以设计创建单个表或涉及多个表的查询,还可指定复杂的查询条件及排序的准则。
若要在“学生管理”数据库中利用设计视图创建一个名为“课程成绩在90分以上的学生”的查询,要求查询结果按学号升序排序并且显示的信息为“学号”“姓名”“课程名”“成绩”字段,操作步骤如下。
• 打开“学生管理”数据库,单击“创建”选项卡的“查询”选项组中的“查询设计”按钮,弹出查询设计视图和“显示表”对话框。
• 在“表”选项卡中选择“学生”“课程”“成绩”选项。
• 单击“添加”按钮,将3个表添加到查询设计视图中,如图9-79所示。
图9-79 在查询设计视图中添加3个表
• 关闭“显示表”对话框,在“设计网格区”设置如图9-80所示的查询条件。
图9-80 设置查询条件
• 关闭该查询设计视图,保存查询,名称为“课程成绩在90分以上的学生”。
• 在导航窗口中的查询对象列表中双击“课程成绩在90分以上的学生”选项,显示查询结果,如图9-81所示。
图9-81 查询结果
9.3.3 任务要求
任务要求如下。
(1)启动Access 2016。
(2)新建一个名为“学生管理”的空白数据库,并保存到E:\Student目录下。
(3)在“学生管理”数据库中分别创建“学生基本情况表”和“班级表”,表结构分别如表9-6和表9-7所示。
表9-6 “学生基本情况表”结构
表9-7 “班级表”结构
(4)设置“学生基本情况表”中的“学号”字段为主键,其验证规则为以“20”开头的8位数字。
(5)设置“学生基本情况表”中的“年龄”字段的验证规则为年龄大于等于16并且小于等于25。
(6)设置“学生基本情况表”中的“性别”字段的验证规则为“男”或“女”,出错提示信息(验证文本)为“必须输入‘男’或‘女’”。
(7)设置“班级表”中“班级编号”字段为主键,其验证规则为以“20”开头的6位数字。
(8)为“学生基本情况表”中的“姓名”字段建立名为“Idx_姓名”的索引。
(9)设置“学生基本情况表”和“班级表”之间的关系。
(10)为“学生基本情况表”“班级表”分别输入如表9-8和表9-9所示的数据。
表9-8 “学生基本情况表”数据
表9-9 “班级表”数据
(11)修改“班级表”结构,增加一个“辅导员”字段,类型为文本且长度为20。
(12)删除“姓名”为“李春”的学生。
(13)将“学生基本情况表”中的数据按“学号”的升序排序。
(14)筛选学生年龄大于等于17岁的学生。
(15)创建一个名为“学生基本信息查询”的查询,显示的信息为学号、姓名、性别、年龄、进校日期和班级编号。
9.3.4 实现过程
实现过程如下。
(1)启动Access 2016。
(2)单击左边导航窗口中的“新建”按钮,再单击右边的“空白数据库”选项。输入数据库名称为“学生管理”,选择保存的路径为“E:\Student”。
(3)单击“创建”按钮创建一个新的“学生管理”数据库,如图9-82所示。
图9-82 创建“学生管理”数据库
(4)创建好的数据库自动打开,默认创建“表1”。切换“表1”到设计视图,单击按钮,保存表名为“学生基本情况表”,如图9-83所示。
(5)在设计视图中创建“学生基本情况表”的字段、类型、主键及验证,如图9-84~图9-86所示。
图9-83 创建数据库默认创建的表1
图9-84 创建“性别”字段
图9-85 创建“学号”字段
图9-86 创建“年龄”字段
(6)创建“班级表”。单击“表设计”按钮,创建“班级表”,其中的字段、类型、主键及验证如图9-87所示。
图9-87 “班级表”中的字段、类型、主键及验证
(7)创建索引。在导航窗口中右击“学生基本情况表”选择“设计视图”命令。单击“设计”菜单中的“索引”按钮,为“姓名”字段创建索引,如图9-88所示。
图9-88 为“姓名”字段创建索引
(8)创建关系。选择数据库工具,单击“关系”按钮。在弹出的对话框中选择“学生基本情况表”和“班级表”,单击“添加”按钮。
在弹出的“编辑”关系界面中拖动“班级表”中的“班级编号”字段到“学生基本情况表”的“班级编号”字段上,这时弹出如图9-89所示的“编辑关系”对话框。
图9-89 “编辑关系”对话框
对学生表与成绩表中相关联的字段进行设置,设置完成之后单击“创建”按钮。
(9)在“学生基本情况表”中添加数据。在导航窗口中双击“班级表”,参照表9-9中的数据,输入到“班级表”中,班级表中数据如图9-90所示。
图9-90 班级表中数据
重复此步骤,向“学生基本情况表”中输入数据,如图9-91所示。
图9-91 “学生基本情况表”中的数据
注意“学生基本情况表”与“班级表”是一对多关系,有外键约束,所以一定要先输入“班级表”中数据;否则会违返参照完整性规则。
(10)为修改表结构,进入“学生基本情况表”设计视图,添加“辅导员”字段,如图9-92所示。
图9-92 添加“辅导员”字段
(11)为删除记录,右击“学生基本情况表中”姓名为“李春”的记录。弹出快捷菜单。选择“删除记录”命令,如图9-93所示。
图9-93 “删除记录”命令
也可以在选中记录后按Delete键删除。
(12)排序。打开“学生基本情况表”,单击学号字段旁的“倒三角形”按钮。选择“升序”选项,如图9-94所示。
图9-94 “升序”选项
(13)筛选。打开“学生基本情况表”,单击“年龄”字段旁的“倒三角形”按钮。选择“数字筛选器”→“大于”命令,弹出“自定义筛选”对话框。输入“17”,如图9-95所示。
图9-95 输入“17”
单击“确定”按钮,即可筛选年龄大于17的学生。
(14)创建查询。单击“创建”→“查询向导”→“简单查询向导”,在弹出的对话框中选择“学生基本情况表”,选中“可用字段”列表框中的“学号”。单击按钮,将其添加到选定字段列表中。
重复此步骤,依次将“姓名”“性别”“年龄”“进校日期”字段添加到“选定字段”列表框中。选中“班级表”,将“班级名称”添加到“选定字段”列表框中,如图9-96所示。
单击“下一步”按钮,选择默认设置。再单击“下一步”按钮,在弹出的窗口中输入查询名称为“学生基本信息查询”,单击“完成”按钮。
此时就完成了“学生基本信息查询”的创建,双击“学生基本信息查询”选项,查询结果如图9-97所示。
图9-96 将“班级名称”添加到“选定字段”列表框中
图9-97 查询结果
9.3.5 技能训练
创建一个“员工管理”数据库并完成以下设置。
(1)创建“部门表”,其中包括“部门编号”(自动编号)和“部门名称”(文本、长度为50)两个字段;创建“员工表”,其中包括“员工编号”(整型)“姓名”(文本、长度为20)“性别”(文本、长度为2)“年龄”(整型)“入职日期”(日期/时间)“部门编号”字段。
(2)设置“员工表”中的“员工编号”字段为主键,其验证规则为以“20”开头的6位数字。
(3)设置“员工表”中的“年龄”字段的验证规则为年龄大于等于20并且小于等于35。
(4)设置“员工表”中的“性别”字段的验证规则为“男”或“女”,出错提示信息(验证文本)为“必须输入‘男’或‘女’”。
(5)设置部门表中的“部门编号”字段为主键,其验证规则为以“10”开头的4位数字。
(6)为“员工表”中的“姓名”字段建立名为“Idx_姓名”的索引。
(7)设置“员工表”和“部门表”之间的关系。
(8)分别为“员工表”和“部门表”插入部分自拟数据。
(9)修改“员工表”结构,增加一个“职务编号”字段,类型为整型。
(10)删除“员工表”中“姓名”为“张三”的员工。
(11)将“员工表”中的数据按“员工编号”降序排序。
(12)筛选员工年龄大于等于25岁的学生。
(13)创建一个名为“员工基本信息查询”的查询,显示的信息为员工编号、姓名、性别、年龄、入职日期、部门名称。