《Access基础与应用教程PPT课件-第4章-查询-》由会员分享,可在线阅读,更多相关《Access基础与应用教程PPT课件-第4章-查询-(114页珍藏版)》请在金锄头文库上搜索。
1、 查询是查询是AccessAccess数据库的对数据库的对象之一,使用查询对象可以象之一,使用查询对象可以将查询命令预先保存,在需将查询命令预先保存,在需要时只要运行查询对象即可要时只要运行查询对象即可自动执行查询中规定的查询自动执行查询中规定的查询命令,从而大大方便用户进命令,从而大大方便用户进行查询操作。行查询操作。查询查询第第4 4章章 查询查询本章主要内容退出退出4.1 4.1 查询概述查询概述4.2 4.2 创建选择查询创建选择查询4.3 4.3 查询的运行和修改查询的运行和修改4.4 4.4 查询条件的设置查询条件的设置4.5 4.5 设置查询的计算设置查询的计算4.6 4.6 交
2、叉表查询交叉表查询4.7 4.7 参数查询参数查询4.8 4.8 操作查询操作查询4.9 SQL4.9 SQL查询查询4.1 4.1 查询概述查询概述 在在 Access 数据库中,表是存储数据的最基本的数据数据库中,表是存储数据的最基本的数据库对象,而查询则是对表中的数据进行检索、统计、分析、库对象,而查询则是对表中的数据进行检索、统计、分析、查看和更改的又一个非常重要的数据库对象。查看和更改的又一个非常重要的数据库对象。 一个查询对象实际上是一个查询命令,实质上它是一一个查询对象实际上是一个查询命令,实质上它是一个个SQL 语句。运行一个查询对象实质上就是执行该查询中语句。运行一个查询对象
3、实质上就是执行该查询中规定的规定的SQL 命令。命令。 简单来说,表是将数据(根据规范化的要求)进行了简单来说,表是将数据(根据规范化的要求)进行了分割,而查询则是从不同的表中抽取数据并组合成一个动分割,而查询则是从不同的表中抽取数据并组合成一个动态数据表。查询可以从多个表中查找到满足条件的记录组态数据表。查询可以从多个表中查找到满足条件的记录组成一个动态数据表,并以数据表视图的方式显示。成一个动态数据表,并以数据表视图的方式显示。 查询结果仅仅是一个临时的动态数据表,查询结果仅仅是一个临时的动态数据表,当关闭查询的数据表视图时,保存的是查询的当关闭查询的数据表视图时,保存的是查询的结构,并不
4、保存该查询结果的动态数据表。结构,并不保存该查询结果的动态数据表。 表和查询都是查询的数据源,表和查询也表和查询都是查询的数据源,表和查询也是窗体、报表的数据源。是窗体、报表的数据源。 建立查询之前,一定要先建立表与表之间建立查询之前,一定要先建立表与表之间的关系。的关系。 4.1.1 4.1.1 查询的类型查询的类型 在在 Access 中,提供有如下五种类型的中,提供有如下五种类型的 查询:查询: 选择查询选择查询 参数查询参数查询 交叉表查询交叉表查询 操作查询操作查询 SQL 查询查询 1 1选择查询选择查询 选择查询是最常见的查询类型,它从一个或多个表中选择查询是最常见的查询类型,它
5、从一个或多个表中检索数据,并且在检索数据,并且在“数据表视图数据表视图”中显示结果。也可以使中显示结果。也可以使用选择查询来对记录进行分组,并且对记录作合计、计数、用选择查询来对记录进行分组,并且对记录作合计、计数、平均值等计算。查询结果仅仅是一个临时的动态数据表。平均值等计算。查询结果仅仅是一个临时的动态数据表。 例例4-1 在在“学生管理系统学生管理系统”数据库的数据库的“学生学生”表里,表里,查找出查找出1986年后(含年后(含1986)出生的女学生)出生的女学生的姓名、性别的姓名、性别和出生日期和出生日期。使用查询的。使用查询的“设计视图设计视图”创建出该查询,其创建出该查询,其设计视
6、图如图设计视图如图4-1所示。当运行该查询时,以所示。当运行该查询时,以“数据表视数据表视图图”方式显示出该查询的结果,如图方式显示出该查询的结果,如图4-2所示。所示。 图图4-2 查询结果查询结果图图4-1 “设计视图设计视图”2 2参数查询参数查询 参数查询是这样一种查询,它在运行时先显示参数查询是这样一种查询,它在运行时先显示参数查询是这样一种查询,它在运行时先显示参数查询是这样一种查询,它在运行时先显示“ “输输输输入参数值入参数值入参数值入参数值” ”对话框,提示用户在该对话框中输入查询条对话框,提示用户在该对话框中输入查询条对话框,提示用户在该对话框中输入查询条对话框,提示用户在
7、该对话框中输入查询条件的值,然后,根据用户输入条件去执行查询命令,检件的值,然后,根据用户输入条件去执行查询命令,检件的值,然后,根据用户输入条件去执行查询命令,检件的值,然后,根据用户输入条件去执行查询命令,检索出满足条件的记录。索出满足条件的记录。索出满足条件的记录。索出满足条件的记录。 例例例例4-24-2 在在在在“ “学生管理系统学生管理系统学生管理系统学生管理系统” ”数据库的数据库的数据库的数据库的“ “修课成绩修课成绩修课成绩修课成绩” ”表表表表里,根据临时输入的里,根据临时输入的里,根据临时输入的里,根据临时输入的“ “学号学号学号学号” ”查找出该学生的各课程的查找出该学
8、生的各课程的查找出该学生的各课程的查找出该学生的各课程的成绩。使用查询的成绩。使用查询的成绩。使用查询的成绩。使用查询的“ “设计视图设计视图设计视图设计视图” ”创建出该查询(该查询创建出该查询(该查询创建出该查询(该查询创建出该查询(该查询名为名为名为名为“ “例例例例4-2”4-2”),当运行查询时,显示出),当运行查询时,显示出),当运行查询时,显示出),当运行查询时,显示出“ “输入参数值输入参数值输入参数值输入参数值” ”的对话框。的对话框。的对话框。的对话框。3 3交叉表查询交叉表查询 使用交叉表查询可以计算并重新组织数据的结构,这样使用交叉表查询可以计算并重新组织数据的结构,这
9、样可以更加方便地分析数据。交叉表查询可以对记录作合计、可以更加方便地分析数据。交叉表查询可以对记录作合计、平均值、计数等计算,这种数据可分为两组信息:一类在数平均值、计数等计算,这种数据可分为两组信息:一类在数据表左侧排列,另一类在数据表的顶端。据表左侧排列,另一类在数据表的顶端。 例例4-3 在在“学生管理系统学生管理系统”数据库的数据库的“学生学生”表中,统表中,统计出各班男、女学生的人数。使用查询的计出各班男、女学生的人数。使用查询的“设计视图设计视图”创建创建出该查询,当运行查询时,以出该查询,当运行查询时,以“数据表视图数据表视图”方式显示出该方式显示出该交叉表查询的结果。交叉表查询
10、的结果。4 4操作查询操作查询 操作查询是这样一种查询,使用这种查询操作查询是这样一种查询,使用这种查询只需进行一次操作就可对许多记录进行更改和移只需进行一次操作就可对许多记录进行更改和移动。有如下四种操作查询动。有如下四种操作查询: 生成表查询生成表查询 追加查询追加查询 更新查询更新查询 删除查询。删除查询。5 5SQL SQL 查询查询 SQL查询是用户使用查询是用户使用 SQL 语句创建的查询。可以用结构化语句创建的查询。可以用结构化查询语言查询语言 (SQL) 来查询、更新和管理来查询、更新和管理 Access 这样的关系数据这样的关系数据库。在查询的库。在查询的“设计视图设计视图”
11、中创建查询时,中创建查询时,Access 将在后台构将在后台构造等效的造等效的 SQL 语句。语句。 可以在可以在“ SQL 视图视图”中查看和编辑中查看和编辑 SQL 语句。但是,在语句。但是,在对对 SQL 视图中的查询做更改之后,查询可能无法以以前在视图中的查询做更改之后,查询可能无法以以前在“设设计视图计视图”中所显示的方式进行显示。中所显示的方式进行显示。 有一些有一些 SQL 查询,称为查询,称为“SQL 特定查询特定查询”,无法在,无法在 “设计设计视图视图” 的设计网格中进行创建,如传递查询、数据定义查询和的设计网格中进行创建,如传递查询、数据定义查询和联合查询,都必须直接在联
12、合查询,都必须直接在 “SQL 视图视图” 中创建中创建 SQL 语句。语句。图图4-5 例例4-1查询查询的的“SQL视图视图”4.1.4.1.2 2 创建查询的方法创建查询的方法 在在“创建创建”选项卡上的选项卡上的“查询查询”组中有组中有“查询查询向导向导”和和“查询设计查询设计”两个按钮,如图两个按钮,如图4-6所示,所示,可用于创建查询。单击可用于创建查询。单击“查询向导查询向导”按钮,则显出按钮,则显出“新建查询新建查询”对话框对话框。图图4-6“创建创建”选项卡上的选项卡上的“查询查询”组组图图4-7 “新建查询新建查询”对话框中对话框中四种创建查询向导四种创建查询向导4.2 4
13、.2 创建选择查询创建选择查询 选择查询的功能是从一个或多个表中选择查询的功能是从一个或多个表中检索数据,并且在检索数据,并且在“数据表视图数据表视图”中显示中显示结果。查询结果仅仅是一个临时的动态数结果。查询结果仅仅是一个临时的动态数据表。据表。4.2.1 4.2.1 使用向导创建查询使用向导创建查询 Access提供了向导功能以帮助用户方便快速创建简提供了向导功能以帮助用户方便快速创建简单的查询对象。使用向导创建查询对象的步骤如例单的查询对象。使用向导创建查询对象的步骤如例4-4 和例和例4-5 所述。所述。 单击单击“创建创建”选项卡上的选项卡上的“查询查询”组中的组中的“查询向查询向导
14、导”按钮,显出按钮,显出“新建查询新建查询”对话框。对话框。 例例4-4 在在“学生管理系统学生管理系统”数据库中,用数据库中,用“学生学生”表创建一个名为表创建一个名为“例例4-4学生高考总分查询学生高考总分查询”的查询。的查询。该查询只要求显示学号、姓名、性别和高考总分四个字该查询只要求显示学号、姓名、性别和高考总分四个字段。段。 例例4-5 在在“学生管理系统学生管理系统”数据库中,用数据库中,用“学生学生”表创建一个名为:表创建一个名为:“例例4-5男女学生平均高考总分查询男女学生平均高考总分查询”的查询。的查询。4.2.2 4.2.2 在设计视图中创建查询在设计视图中创建查询 单击单
15、击“创建创建”选项卡上的选项卡上的“查询查询”组中的组中的“查询设查询设计计”按钮,打开查询按钮,打开查询“设计视图设计视图”。 查询的查询的“设计视图设计视图”分为上、下两部分,上半部分为上、下两部分,上半部分称为分称为“字段列表字段列表”区,显示所选定的数据源表或查区,显示所选定的数据源表或查询(注意:查询也可作为查询的数据源)的所有字段。询(注意:查询也可作为查询的数据源)的所有字段。下半部分称为下半部分称为“设计网格设计网格”区,用于确定查询结果动区,用于确定查询结果动态集所拥有的字段、排序和检索条件等。态集所拥有的字段、排序和检索条件等。 在在“设计网格设计网格”中需要设置如下内容:
16、中需要设置如下内容:(1)字段:设置查询所涉及的字段。)字段:设置查询所涉及的字段。(2)表:)表: 字段所属的表。字段所属的表。(3)排序:查询的排序准则(如升序或降序)。)排序:查询的排序准则(如升序或降序)。(4)显示:当复选框选中时,字段将在查询结果中显出,否则,在查询结果中)显示:当复选框选中时,字段将在查询结果中显出,否则,在查询结果中不显出。不显出。(5)条件:设置检索记录的条件(也称为准则)。)条件:设置检索记录的条件(也称为准则)。(6)或:)或: 设置检索记录的条件(也称为准则)。设置检索记录的条件(也称为准则)。在设计视图中创建查询在设计视图中创建查询(例(例4-6 4-
17、6 ) 例例4-6 在在“学生管理系统学生管理系统”数据库中,使用数据库中,使用“设计视图设计视图”创创建一个名为建一个名为“例例4-6查询高考总分查询高考总分750分以上的女生分以上的女生”的查询。查的查询。查询要求是:对询要求是:对“学生学生”表,检索高考总分表,检索高考总分750分以上(含分以上(含750)的)的女学生的记录,并要求按高考总分降序进行排序,仅要求显示学女学生的记录,并要求按高考总分降序进行排序,仅要求显示学号、姓名、班级号、性别和高考总分五个字段。号、姓名、班级号、性别和高考总分五个字段。4.3 4.3 查询的运行和修改查询的运行和修改 运行查询实际上就是打开该查询的运行
18、查询实际上就是打开该查询的“数据表数据表视图视图”,以表格形式显出该查询结果的动态集记,以表格形式显出该查询结果的动态集记录数据。录数据。 修改查询实际上就是打开该查询的修改查询实际上就是打开该查询的“设计视设计视图图”,对查询所涉及的字段及条件等进行设计修,对查询所涉及的字段及条件等进行设计修改。改。4.3.1 4.3.1 运行查询的基本方法运行查询的基本方法 运行查询的六种基本方法:运行查询的六种基本方法:(1)打开某查询的)打开某查询的“设计视图设计视图”,单击,单击“查询工具查询工具”下的下的“设计设计”选项卡的选项卡的“结果结果”组中的组中的“运行运行”按钮。按钮。(2)打开某查询的
19、)打开某查询的“设计视图设计视图”,单击,单击“查询工具查询工具”下的下的“设计设计”选项卡的选项卡的“结果结果”组中的组中的“视图视图”(默认是(默认是“数据表视图数据表视图”)按钮。按钮。(3)打开某查询的)打开某查询的“设计视图设计视图”,右击该,右击该“设计视图设计视图”中的空白中的空白处,弹出快捷菜单,单击该快捷菜单中的处,弹出快捷菜单,单击该快捷菜单中的“数据表视图数据表视图”。(4)双击)双击“导航窗格导航窗格”上的查询对象列表中要运行的查询名称。上的查询对象列表中要运行的查询名称。(5)右击)右击“导航窗格导航窗格”上的查询对象列表中要运行的查询名称,上的查询对象列表中要运行的
20、查询名称,弹出快捷菜单,单击该快捷菜单中的弹出快捷菜单,单击该快捷菜单中的“打开打开”。 此外此外还有其他的运行查询方法,如在还有其他的运行查询方法,如在“宏宏”中运行查询的方法中运行查询的方法。4.3.2 4.3.2 修改查询设计修改查询设计 右击右击“导航窗格导航窗格”上查询对象列表中的某个查询,上查询对象列表中的某个查询,弹出快捷菜单,单击该快捷菜单中的弹出快捷菜单,单击该快捷菜单中的“设计视图设计视图”,打,打开该查询的开该查询的“设计视图设计视图”,便可,便可对对该该查询的结构设计进查询的结构设计进行各种更改行各种更改。 如果所需的数据不在查询中,可以添加一个表或查如果所需的数据不在
21、查询中,可以添加一个表或查询,或者如果决定不需要某个表或查询,也可以将其删询,或者如果决定不需要某个表或查询,也可以将其删除。添加了所需的表或查询后,就可以在除。添加了所需的表或查询后,就可以在“设计网格设计网格”中添加要使用的字段,在决定不需要这些字段时可以将中添加要使用的字段,在决定不需要这些字段时可以将其删除。可对字段排序分别进行排序设置。也可通过把其删除。可对字段排序分别进行排序设置。也可通过把鼠标指针移到某字段鼠标指针移到某字段“列选定器列选定器”的右边界,使鼠标指的右边界,使鼠标指针变成双箭头时拖动鼠标的方法来调整查询的列宽等等。针变成双箭头时拖动鼠标的方法来调整查询的列宽等等。例
22、例4-7 4-7 (修改查询设计修改查询设计 的例子)的例子) 例例4-7 在在“学生管理系统学生管理系统”数据库中,对已经创建好的名为数据库中,对已经创建好的名为“例例4-6查询高考总分查询高考总分750分以上的女生分以上的女生”的查询对象进行的查询对象进行“复制复制”操作、操作、“粘贴粘贴”操作,产生出一个新的名为操作,产生出一个新的名为“例例4-7查询高考总查询高考总分分750分以上的学生分以上的学生”查询。然后对新建的查询。然后对新建的“例例4-7查询高考总分查询高考总分750分以上的学生分以上的学生”查询的设计按如下要求进行修改,该查询要查询的设计按如下要求进行修改,该查询要求是:检
23、索高考总分求是:检索高考总分750分以上(含分以上(含750)的学生记录,并要求按)的学生记录,并要求按“性别性别”升序、升序、“高考总分高考总分”降序对查询结果的记录进行排序降序对查询结果的记录进行排序(即先按(即先按“性别性别”字段值升序排序,当字段值升序排序,当“性别性别”字段值相同时再字段值相同时再按按“高考总分高考总分”字段值降序排序),并要求显示学号、姓名、班字段值降序排序),并要求显示学号、姓名、班级名称、性别和高考总分五个字段。级名称、性别和高考总分五个字段。提示:提示:对于要求显示对于要求显示“班级名称班级名称”字段,故需要先在该查询的字段,故需要先在该查询的“设计视图设计视
24、图”中添加中添加“班级班级”表,然后,在表,然后,在“设计网格设计网格”区,把原区,把原来的来的“学生学生”表的表的“班级号班级号”字段更改为字段更改为“班级班级”表的表的“班级名班级名称称”字段。其他更改按查询要求进行相应的设置。字段。其他更改按查询要求进行相应的设置。 例例4-7 4-7 (续(续)修改前修改前修改后修改后4.4 4.4 查询条件的设置查询条件的设置 创建查询时,通过对字段添加限制条创建查询时,通过对字段添加限制条件,使查询结果中只包含满足查询条件的件,使查询结果中只包含满足查询条件的数据。数据。4.4.1 4.4.1 表达式表达式 在查询的在查询的“设计视图设计视图”中,
25、若要对中,若要对“设计网格设计网格”区中区中的某个字段指定条件,就可在该字段的的某个字段指定条件,就可在该字段的“条件条件”单元格中单元格中直接输入一个表达式。直接输入一个表达式。 表达式是运算符、常数、函数和字段名称等的任意组表达式是运算符、常数、函数和字段名称等的任意组合。表达式可执行计算,其计算结果为单个值。对于较复合。表达式可执行计算,其计算结果为单个值。对于较复杂的表达式,当光标处于该字段的杂的表达式,当光标处于该字段的“条件条件”单元格时,单单元格时,单击击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询设置查询设置”组组上的上的“生成器生成器”按钮按钮,打开表达
26、式生成器,在表达式生成,打开表达式生成器,在表达式生成器中构造表达式,如图器中构造表达式,如图4-31所示。在输入表达式时,除了所示。在输入表达式时,除了汉字以外,其他所有字符必须是在英文输入法状态下输入。汉字以外,其他所有字符必须是在英文输入法状态下输入。图图4-31 表达式生成器示例表达式生成器示例4.4.2 4.4.2 比较运算符比较运算符 对于比较运算符来说,要比较的数据的数对于比较运算符来说,要比较的数据的数据类型必须匹配。也就是说,文本只能与文本据类型必须匹配。也就是说,文本只能与文本比较,数字只能与数字比较,等等。可以使用比较,数字只能与数字比较,等等。可以使用函数临时将数据转换
27、为其他数据类型,然后再函数临时将数据转换为其他数据类型,然后再作比较。比较运算符的含义、示例等信息如表作比较。比较运算符的含义、示例等信息如表4-1所示。所示。表表4-1 比较运算符比较运算符 4.4.3 4.4.3 逻辑运算符逻辑运算符 使用下表中列出的标准逻辑运算符,可以组合或修改搜索条使用下表中列出的标准逻辑运算符,可以组合或修改搜索条使用下表中列出的标准逻辑运算符,可以组合或修改搜索条使用下表中列出的标准逻辑运算符,可以组合或修改搜索条件。逻辑运算符的优先级从高到低依次是件。逻辑运算符的优先级从高到低依次是件。逻辑运算符的优先级从高到低依次是件。逻辑运算符的优先级从高到低依次是NotN
28、ot、AndAnd、OrOr。逻辑。逻辑。逻辑。逻辑运算符的含义、示例等信息如表运算符的含义、示例等信息如表运算符的含义、示例等信息如表运算符的含义、示例等信息如表4-24-2所示。所示。所示。所示。运算符运算符含义含义SQL 视图窗口示例视图窗口示例Not 条件的逻辑否条件的逻辑否 SELECT * FROM 学生学生 WHERE NOT (性别性别 = 女女);And 必须同时满足两个条件必须同时满足两个条件 SELECT * FROM 学生学生 WHERE 性别性别 = 女女 AND 班级号班级号 = 3;Or 满满 足一个条件即可足一个条件即可 SELECT 学号学号, 课程代码课程代
29、码, 成绩成绩 FROM 修课成绩修课成绩 WHERE 成绩成绩 90;4.4.4 4.4.4 特殊运算符特殊运算符 运算符运算符含义含义设计网格区示例设计网格区示例SQL 视图窗口示例视图窗口示例 IN测试某值是否出测试某值是否出现在值的列现在值的列表中。表中。或或测试某值是否出测试某值是否出现在一个子现在一个子查询的结果查询的结果集内。集内。 In(足球足球, 篮球篮球) In (SELECT 学号学号 FROM 修课成绩修课成绩 WHERE 成绩成绩 60) SELECT * FROM 学生学生 WHERE 特长特长 In(足球足球, 篮球篮球); SELECT 姓名姓名 FROM 学生
30、学生 WHERE 学号学号 In (SELECT 学号学号 FROM 修课成绩修课成绩 WHERE 成绩成绩 =#1986-1-1# AND =18SELECT 学号学号, 姓名姓名, 性别性别, 出生日期出生日期FROM 学生学生WHERE Year(Date( ) Year(出生日期出生日期)=18; Time( )返回当前系统返回当前系统时间。时间。 Hour(time)返回返回 0 和和 23 之之间的整数(表间的整数(表示一天中某个示一天中某个小时)。小时)。4.4.7 4.4.7 设置查询的组合条件设置查询的组合条件 在查询的在查询的“设计视图设计视图”中的中的“设计网格设计网格”
31、区,区,“条件条件”行、行、“或或”条件行以及条件行以及“或或”行下边紧接着的若干空白行下边紧接着的若干空白行的单元格,均可用来设置查询条件的表达式。行的单元格,均可用来设置查询条件的表达式。 在查询的在查询的“设计网格设计网格”区,用户可以在多个字段的区,用户可以在多个字段的“条件条件”单元格(包括单元格(包括“条件条件”行的单元格和行的单元格和“或或”条件行条件行的单元格等)中设置查询条件的表达式。对于多个字段的的单元格等)中设置查询条件的表达式。对于多个字段的“条件条件”单元格中的表达式,单元格中的表达式,Access数据库管理系统会自数据库管理系统会自动使用动使用 And 运算符或者运
32、算符或者 Or 运算符去组合这些不同单元格运算符去组合这些不同单元格中的表达式,构成一个组合条件,以满足复杂查询的需要。中的表达式,构成一个组合条件,以满足复杂查询的需要。1 1用用And And 运算符组合条件运算符组合条件 在查询的在查询的“设计网格设计网格”区,如果仅在同一条件行区,如果仅在同一条件行的不同单元格中设置了条件的表达式,表示这些在不的不同单元格中设置了条件的表达式,表示这些在不同单元格中设置的条件都必须要同时满足的。同单元格中设置的条件都必须要同时满足的。 Access自动用自动用 And 运算符去组合这一条件行中运算符去组合这一条件行中的不同单元格中的条件表达式,构成一个
33、组合条件,的不同单元格中的条件表达式,构成一个组合条件,表示要筛选满足该条件行所有(设置了条件的)单元表示要筛选满足该条件行所有(设置了条件的)单元格的条件的记录。格的条件的记录。例例4-9 4-9 ( 用用And And 运算符组合条件运算符组合条件例子)例子) 例例4-9 查询高考总分查询高考总分750分以上(含分以上(含750)的男学)的男学生的生的学号、姓名、性别和高考总分学号、姓名、性别和高考总分。用用And 运算符组合条件运算符组合条件SQL视图视图设计视图设计视图2 2用用Or 运算符组合条件运算符组合条件 在查询的在查询的“设计视图设计视图”的的“设计网格设计网格”区,如果在每
34、区,如果在每一条件行中仅有一个字段的一条件行中仅有一个字段的“条件条件”单元格(包括单元格(包括“条件条件”行的单元格和行的单元格和“或或”条件行的单元格等)设置了查询条条件行的单元格等)设置了查询条件的表达式,那么,对于这些条件行来说,件的表达式,那么,对于这些条件行来说,Access数据库数据库管理系统会自动使用(一个或多个)管理系统会自动使用(一个或多个) Or 运算符去组合这运算符去组合这些不同条件行的表达式,构成一个组合条件,表示筛选只些不同条件行的表达式,构成一个组合条件,表示筛选只要满足任一条件行的要满足任一条件行的“条件条件”单元格条件的记录。单元格条件的记录。 注意,注意,在
35、查询的在查询的“设计视图设计视图”的的“设计网格设计网格”区,可区,可以在任一字段的以在任一字段的“条件条件”行单元格设置条件的表达式,也行单元格设置条件的表达式,也可以在任一字段的可以在任一字段的“或或”条件行单元格设置条件的表达式,条件行单元格设置条件的表达式,还可以在任一字段的还可以在任一字段的“或或”行下边紧接着的若干空白行的行下边紧接着的若干空白行的单元格设置条件的表达式。单元格设置条件的表达式。例例4-10 4-10 ( 用用 Or 运算符组合条件运算符组合条件例子例子 ) 例例4-10 查询高考总分查询高考总分690分以下以及分以下以及780分以上分以上(含(含780)的学生的学
36、号、姓名、性别和高考总分。)的学生的学号、姓名、性别和高考总分。图图4-35 在同一个字段的不同条件行的条件单元格中设置查询条件在同一个字段的不同条件行的条件单元格中设置查询条件设计视图设计视图用用 Or 运算符组合条件运算符组合条件SQL视图视图例例4-114-11( 用用 Or 运算符组合条件运算符组合条件例子例子 ) 例例4-11 查询高考总分查询高考总分750分以上(含分以上(含750)的学)的学生以及全部女学生的学号、姓名、性别和高考总分。生以及全部女学生的学号、姓名、性别和高考总分。图图4-36 在两个不同字段的不同条件行(一字段一条件行)的条件单元格中设置查询条件在两个不同字段的
37、不同条件行(一字段一条件行)的条件单元格中设置查询条件 设计视图设计视图用用 Or 运算符组合条件运算符组合条件SQL视图视图3 3用用And And 和和Or Or 两个运算符组合条件两个运算符组合条件 在查询的在查询的“设计网格设计网格”区,如果对于若干不同字区,如果对于若干不同字段的不同条件行的段的不同条件行的“条件条件”单元格(包括单元格(包括“条件条件”行行的单元格和的单元格和“或或”条件行的单元格),设置了查询条条件行的单元格),设置了查询条件的表达式,件的表达式,Access数据库管理系统会自动使用数据库管理系统会自动使用(一个或多个)(一个或多个)And 运算符和(一个或多个)
38、运算符和(一个或多个)Or 运运算符去组合这些不同字段的不同条件行的算符去组合这些不同字段的不同条件行的“条件条件”单单元格的表达式,构成一个组合条件,表示筛选只要满元格的表达式,构成一个组合条件,表示筛选只要满足任何一条件行的所有足任何一条件行的所有“条件条件”单元格条件的记录。单元格条件的记录。例例4-12 4-12 (用(用And And 和和Or Or 两个运算符组合条件)两个运算符组合条件) 例例4-12 查询高考总分查询高考总分690分以下的男学生以及分以下的男学生以及780分以上(含分以上(含780)的女学生的学号、姓名、性别和高考)的女学生的学号、姓名、性别和高考总分。总分。图
39、图4-38 在两个字段的两条件行的条件单元格中设置查询条件在两个字段的两条件行的条件单元格中设置查询条件 设计视图设计视图用用 Or 运算符组合条件运算符组合条件用用 And 运算符组合条件运算符组合条件用用 And 运算符组合条件运算符组合条件SQL视图视图4.5 4.5 设置查询的计算设置查询的计算 要在查询中执行计算,可以在查询设计中使用要在查询中执行计算,可以在查询设计中使用“预定义计算预定义计算”或或“自定义计算自定义计算”形式来对查询中需要形式来对查询中需要的计算进行相应的设置。的计算进行相应的设置。 预定义计算是预定义计算是Access 通过聚合函数对查询中的通过聚合函数对查询中
40、的分组记录或全部记录进行分组记录或全部记录进行“总计总计”计算,比如求合计、计算,比如求合计、平均值、计数、最小值、最大值、标准偏差或方差等。平均值、计数、最小值、最大值、标准偏差或方差等。 计算中可用的聚合函数全都可以在查询的计算中可用的聚合函数全都可以在查询的“设设计视图计视图”的的“设计网格设计网格”区的区的“总计总计”行的任一单元行的任一单元格的下拉列表中选择到。格的下拉列表中选择到。4.5.1 4.5.1 设置查询的总计计算设置查询的总计计算(例(例4-13 4-13 ) 例例4-13 在在“学生管理系统学生管理系统”数据库中创建一个查询,数据库中创建一个查询,统计全校学生人数。统计
41、全校学生人数。 分析:分析:本查询的运行结果实际上就是要统计出本查询的运行结果实际上就是要统计出“学生学生”表中的全部记录个数。表中的全部记录个数。 在该查询的在该查询的“设计视图设计视图” ,单击单击“查询工具查询工具”下的下的“设计设计”选项卡的选项卡的“显示显示/隐藏隐藏”组中的组中的“汇总汇总”按钮,在按钮,在“设计网设计网格格”区显出区显出“总计总计”行行。 例例4-134-13(续)(续)图图4-44 “姓名姓名”的的“字段属性字段属性”对话对话框框 图图4-45 字段改标题后的查询结果字段改标题后的查询结果 图图4-43 字段改名前的查询结果字段改名前的查询结果 修改该字段标题修
42、改该字段标题 4.5.2 4.5.2 设置查询的分组总计计算设置查询的分组总计计算(例(例4-14 4-14 ) 例例4-14 在在“学生管理系统学生管理系统”数据库中创建一个数据库中创建一个查询,统计全校男学生的高考总分的平均分和女学生查询,统计全校男学生的高考总分的平均分和女学生的高考总分的平均分。的高考总分的平均分。 分析:本查询的运行结果实际上就是要分别统计出分析:本查询的运行结果实际上就是要分别统计出“学生学生”表中的表中的“性别性别”字段的值为字段的值为“男男”的高考总分的平均分和的高考总分的平均分和“性别性别”字段的值为字段的值为“女女”的高考总分的平均分。实际上就是要的高考总分
43、的平均分。实际上就是要把把“学生学生”表中的全部记录按表中的全部记录按“性别性别”字段的值进行分组,将字段的值进行分组,将全部全部“性别性别”为为“男男”的学生记录分为一组并统计出该组的高的学生记录分为一组并统计出该组的高考总分的平均分,将全部考总分的平均分,将全部“性别性别”为为“女女”的学生记录分为一的学生记录分为一组并统计出该组的高考总分的平均分。组并统计出该组的高考总分的平均分。 例例4-144-14 (续)(续) 图图4-47 查询结果查询结果 图图4-46 “设计网格设计网格”区查询条件设置区查询条件设置 4.5.2 4.5.2 设置查询的分组总计计算(续)例设置查询的分组总计计算
44、(续)例4-154-15 例例4-15 在在“学生管理系统学生管理系统”数据库中创建一数据库中创建一个查询,统计每一个学生已修的学分数。对于每个学个查询,统计每一个学生已修的学分数。对于每个学生来说,某门课程的成绩大于等于生来说,某门课程的成绩大于等于60分才能计算该门分才能计算该门课程的学分(若不及格,就不计算该门课程的学分数)课程的学分(若不及格,就不计算该门课程的学分数)。要求在查询结果中显出。要求在查询结果中显出“学号学号”、“姓名姓名”和和“学学分分”。 分析:分析:“学生学生”表中有表中有“学号学号”和和“姓名姓名”两两个字段,在个字段,在“修课成绩修课成绩”表中才有表中才有“成绩
45、成绩”字段,在字段,在“课程课程”表中才有表中才有“学分学分”字段,故在创建该查询时字段,故在创建该查询时要添加要添加“学生学生”、“修课成绩修课成绩”和和“课程课程”三个表。三个表。例例4-15 4-15 (续)(续)运行查询结果运行查询结果设计视图设计视图4.5.3 4.5.3 设置查询的自定义计算设置查询的自定义计算 自定义计算是指使用一个或多个字段中的自定义计算是指使用一个或多个字段中的数据在每个记录上执行数值、日期或文本计算。数据在每个记录上执行数值、日期或文本计算。 在在“设计视图设计视图”中,对于自定义计算,可中,对于自定义计算,可直接在设计网格中创建新的计算字段。直接在设计网格
46、中创建新的计算字段。 创建计算字段的方法是:将表达式输入到创建计算字段的方法是:将表达式输入到查询设计网格中的空查询设计网格中的空“字段字段”单元格中。单元格中。4.5.3 4.5.3 设置查询的自定义计算设置查询的自定义计算(例(例4-164-16) 例例4-16 在在“学生管理系统学生管理系统”数据库中创建一个查询,计数据库中创建一个查询,计算每一个学生每一已修课程成绩的绩点数。对于每个学生来说,算每一个学生每一已修课程成绩的绩点数。对于每个学生来说,某一课程的成绩大于等于某一课程的成绩大于等于60分才能计算该门课程成绩的绩点数分才能计算该门课程成绩的绩点数(若不及格,就不计算该门课程成绩
47、的绩点数)。要求在查询(若不及格,就不计算该门课程成绩的绩点数)。要求在查询结果中显出结果中显出“学号学号”、“课程名称课程名称”、“成绩成绩”和和“绩点绩点”,并按学号、课程代码排序并按学号、课程代码排序。绩点的计算公式为:。绩点的计算公式为:成绩成绩/10-5。 分析:分析:在在“修课成绩修课成绩”表中有表中有“学号学号”字段、字段、“课程代码课程代码”字段和字段和“成绩成绩”字段。在字段。在“课程课程”表中有表中有“课程名称课程名称”字段,字段,在任何表中都没有在任何表中都没有“绩点绩点”字段,故要添加一个计算字段,即字段,故要添加一个计算字段,即在在“设计网格设计网格”区的空白的区的空
48、白的“字段字段”单元格输入:单元格输入: 绩点绩点:成绩成绩/10-5 另外,另外,“课程代码课程代码”字段不需显示,在此例中添加进来仅字段不需显示,在此例中添加进来仅是为了排序用途。是为了排序用途。例例4-164-16(续)(续)运行查询结果运行查询结果输入输入绩点绩点:成绩成绩/10-5设置不显示设置不显示设计视图设计视图4.6 4.6 交叉表查询交叉表查询 使用交叉表查询可以计算并重新组织数使用交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。据的结构,这样可以更加方便地分析数据。交叉表查询可以按分类对记录数据作合计、交叉表查询可以按分类对记录数据作合计、平均值、计数等
49、计算平均值、计数等计算,这种数据可分为两组,这种数据可分为两组信息:一类在数据表左侧排列,另一类在数信息:一类在数据表左侧排列,另一类在数据表的顶端。据表的顶端。4.6.4.6.1 1 使用向导创建交叉表查询使用向导创建交叉表查询(例例4-174-17 )例例4-17 在在“学生管理系统学生管理系统”数据库中,对数据库中,对“学生学生”表创建的交表创建的交叉表查询,计算各班级的男、女学生的人数。该查询的名称为:叉表查询,计算各班级的男、女学生的人数。该查询的名称为:例例4-17 班级男女学生人数班级男女学生人数交叉表查询。交叉表查询。 单击单击“创建创建”选项卡的选项卡的“查询查询”组上的组上
50、的“查询向导查询向导”按钮,按钮,显出显出“新建查询新建查询”对话框对话框,单击单击“交叉表查询向导交叉表查询向导”。图图4-54 选定行标题选定行标题 (班级号)(班级号) 图图4-55 选定列标题选定列标题 (性别)(性别) 例例4-14-17 7 (续)(续) 在在“请确定为每个列和行的交叉点计算出什么数字:请确定为每个列和行的交叉点计算出什么数字:”的的“交叉表查询向导交叉表查询向导”对话框中,单击选择对话框中,单击选择“函数函数”列表框中的列表框中的 “Count” 。图图4-56 指定计数函数指定计数函数Count 图图4-58 查询运行结果查询运行结果 4.6.4.6.2 2 使
51、用设计视图创建交叉表查询使用设计视图创建交叉表查询 例例4-18 在在“学生管理系统学生管理系统”数据库中,对数据库中,对“修课成绩修课成绩”表创建交叉表查询,计算各学生各学年度的修课数。该表创建交叉表查询,计算各学生各学年度的修课数。该查询的名称为:例查询的名称为:例4-18查询学生各学年的修课数查询学生各学年的修课数交叉表。交叉表。 单击单击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询类查询类型型”组上的组上的“交叉表交叉表”按钮,立即在该查询的按钮,立即在该查询的“设计网格设计网格”区添加上了区添加上了“总计总计”行和行和“交叉表交叉表”行,如图行,如图4-59所示
52、。所示。“字段”单元格下拉按钮添加“总计”行和“交叉表”行4.6.2 4.6.2 使用设计视图创建交叉表查询使用设计视图创建交叉表查询(续例(续例4-18 4-18 )选选“学号学号”为行标题为行标题选选“学年度学年度”为列标题为列标题选选“计数计数”选选“值值”运行查询结果运行查询结果4.7 4.7 参数查询参数查询 参数查询是这样一种查询,它在运行时显示参数查询是这样一种查询,它在运行时显示“输输入参数值入参数值”的对话框,提示用户输入信息,用户可在的对话框,提示用户输入信息,用户可在该对话框中输入不同的条件参数值,即可检索该对话框中输入不同的条件参数值,即可检索到满足到满足条件的记录内容
53、条件的记录内容。 可以设计参数查询来提示输入条件,检索要满可以设计参数查询来提示输入条件,检索要满足该条件值的记录,例如,可设计参数查询来提示输足该条件值的记录,例如,可设计参数查询来提示输入一个入一个“班级号班级号”等。可以设计多个参数查询来提示等。可以设计多个参数查询来提示更多的内容,例如,设计两个参数的查询来提示输入更多的内容,例如,设计两个参数的查询来提示输入两个日期,当运行时,检索出这两个日期之间的所有两个日期,当运行时,检索出这两个日期之间的所有记录。记录。4.7.4.7.1 1 在设计视图中创建单个参数的查询在设计视图中创建单个参数的查询 例例4-19 在在“学生管理系统学生管理
54、系统”数据库中,创建数据库中,创建一个单个参数的查询,根据提示输入某一个一个单个参数的查询,根据提示输入某一个“班级号班级号”,检索出该班级的成绩不及格的,检索出该班级的成绩不及格的“班级号班级号”、“学学号号”、“姓名姓名”、“课程名称课程名称”和和“成绩成绩”字段。该字段。该查询的名称为:例查询的名称为:例4-19按班级号查询成绩不及格的学按班级号查询成绩不及格的学生名单。生名单。 分析:分析:“学生学生”表中有表中有“班级号班级号”、“学号学号”和和“姓名姓名”三个字段,在三个字段,在“修课成绩修课成绩”表中才有表中才有“成成绩绩”字段,在字段,在“课程课程”表中才有表中才有“课程名称课
55、程名称”字段,字段,故在创建该查询时一定要添加故在创建该查询时一定要添加“学生学生”表、表、“修课成修课成绩绩”表和表和“课程课程”表等三个表。表等三个表。例例4-194-19(续)(续)图图4-63 含单个参数的查询的含单个参数的查询的“设计视图设计视图”的设置的设置在在“班级号班级号”字段的字段的“条件条件”行单元格行单元格中输入:中输入:请输入要查询的班级号请输入要查询的班级号 例例4-194-19(续)(续)图图4-64 “输入参数值输入参数值”对话框对话框 图图4-65 参数查询结果参数查询结果 当运行该查询时显出:当运行该查询时显出:运行查询结果运行查询结果4.7.4.7.2 2
56、在设计视图中创建多个参数的查询在设计视图中创建多个参数的查询 例例4-20 在在“学生管理系统学生管理系统”数据库中,创建一数据库中,创建一个含有两个参数的查询,提示输入两个日期,然后检个含有两个参数的查询,提示输入两个日期,然后检索在这两个日期之间出生的所有学生的学号、姓名、索在这两个日期之间出生的所有学生的学号、姓名、性别、出生日期、班级名称、课程名称及成绩。该查性别、出生日期、班级名称、课程名称及成绩。该查询的名称为:例询的名称为:例4-20查询两个日期之间出生学生的成查询两个日期之间出生学生的成绩。绩。 提示:提示:创建本查询要添加创建本查询要添加“班级班级”表、表、“学生学生”表、表
57、、“修课成绩修课成绩”表和表和“课程课程”表。表。例例4-20 4-20 (续)(续)图图4-66 含两个参数查询的含两个参数查询的“设计视图设计视图”的设置的设置 在在“出生日期出生日期 ”字段的字段的“条件条件”行单元格中输入:行单元格中输入:Between 请输入开始日期请输入开始日期 And 请输入终止日期请输入终止日期 例例4-20 4-20 (续)(续)图图4-67 第一个第一个“输入参数值输入参数值”对话框对话框 图图4-69 两个日期参数的查询结果两个日期参数的查询结果 当运行该查询时显出:当运行该查询时显出:图图4-68 第二个第二个“输入参数值输入参数值”对话框对话框 运行
58、查询结果运行查询结果4.8 4.8 操作查询操作查询 操作查询是仅在一个操作中就可以追加、操作查询是仅在一个操作中就可以追加、更改或删除许多记录的查询更改或删除许多记录的查询操作查询。操作查询。有如下四种类型:有如下四种类型: 生成表查询生成表查询 追加查询追加查询 更新查询更新查询 删除查询删除查询 4.8.1 4.8.1 生成表查询生成表查询 生成表查询利用一个或多个表中的全部或部分生成表查询利用一个或多个表中的全部或部分数据创建新表。数据创建新表。 利用生成表查询建立新表时,如果数据库中已利用生成表查询建立新表时,如果数据库中已有同名的表,则新表将覆盖该同名的表。有同名的表,则新表将覆盖
59、该同名的表。 注意,利用生成表查询建立新表时,新表中的注意,利用生成表查询建立新表时,新表中的字段从生成表查询的源表中继承字段名称、数据类字段从生成表查询的源表中继承字段名称、数据类型以及型以及“字段大小字段大小”属性。但是不继承其它的字段属性。但是不继承其它的字段属性以及表的主键。属性以及表的主键。例例4-214-21( 生成表查询生成表查询例子)例子) 例例4-21 在在“学生管理系统学生管理系统”数据库中,创建数据库中,创建一个生成表查询,将一个生成表查询,将2003-2004学年度成绩学年度成绩“不及不及格格”的学生相关内容(包括的学生相关内容(包括“学号学号”、“姓名姓名”、“课程名
60、称课程名称”、“成绩成绩”、“学年度学年度”、“学期学期”、“班级名称班级名称”字段)生成到一新表。该新表名为字段)生成到一新表。该新表名为“成绩不及格的学生成绩不及格的学生”。该查询名为:例。该查询名为:例4-21成绩不成绩不及格学生的生成表查询。及格学生的生成表查询。 提示:提示:在创建本查询时要添加在创建本查询时要添加“班级班级”表、表、“学生学生”表、表、“修课成绩修课成绩”表和表和“课程课程”表。表。例例4-21 4-21 (续(续 )单击单击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询类型查询类型”组上的组上的“生成表生成表”按钮,显出按钮,显出“生成表生成表
61、”对话框。对话框。设计视图设计视图“生成表生成表”对话框对话框例例4-214-21(续(续 ) 当运行当运行“例例4-21成绩不及格学生的生成表查询成绩不及格学生的生成表查询”时,显出时,显出提示提示“确实要执行这种类型的动作查询吗?确实要执行这种类型的动作查询吗?”对话框对话框 。 单击上述对话框中的单击上述对话框中的“是是”按钮,显出提示按钮,显出提示“确实要用选中确实要用选中的记录来创建新表吗?的记录来创建新表吗?”对话框。对话框。4.8.2 4.8.2 追加查询追加查询 追加查询是将一个或多个表中的一组记录追加查询是将一个或多个表中的一组记录添加到另一个已存在的表的末尾。添加到另一个已
62、存在的表的末尾。 要被追加记录的表必须是已经存在的表。要被追加记录的表必须是已经存在的表。这个表可以是当前数据库中的表,也可以是另这个表可以是当前数据库中的表,也可以是另外一个数据库中的表。外一个数据库中的表。例例4-22 4-22 (追加查询追加查询 例子)例子) 例例4-22 在在“学生管理系统学生管理系统”数据库中,创建一数据库中,创建一个追加查询,将个追加查询,将2004-2005学年度成绩学年度成绩“不及格不及格”的学生相关内容(包括的学生相关内容(包括“学号学号”、“姓名姓名”、“课课程名称程名称”、“成绩成绩”、“学年度学年度”、“学期学期”、“班级名称班级名称”字段)追加到字段
63、)追加到“成绩不及格的学生成绩不及格的学生”中。中。该查询名为:例该查询名为:例4-22成绩不及格学生的追加查询。成绩不及格学生的追加查询。 提示:提示:在创建本查询时要添加在创建本查询时要添加“班级班级”表、表、“学生学生”表、表、“修课成绩修课成绩”表和表和“课程课程”表表例例4-22 4-22 (续)(续)单击单击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询类型查询类型”组上组上的的“追加追加”按钮,显出按钮,显出“追加追加”对话框。对话框。设计视图设计视图“追加追加”对话框对话框例例4-224-22(续(续 ) 当运行当运行“例例4-22成绩不及格学生的追加查询成
64、绩不及格学生的追加查询”时,显出提时,显出提示示“确实要执行这种类型的动作查询吗?确实要执行这种类型的动作查询吗?”对话框对话框 单击上述对话框中的单击上述对话框中的“是是”按钮,显出提示按钮,显出提示“确实要追加选确实要追加选中行吗?中行吗?”对话框。对话框。4.8.3 4.8.3 更新查询更新查询 更新查询可以对表中的部分记录或全部记更新查询可以对表中的部分记录或全部记录作更改。更新查询用在一次更新一批数据的录作更改。更新查询用在一次更新一批数据的操作中非常方便。操作中非常方便。 例例4-234-23(更新查询更新查询 例子)例子) 例例4-23 在在“学学生生管管理理系系统统”数数据据库
65、库中中,创创建建一一个个更更新新查查询询,将将“修修课课成成绩绩”表表中中的的“学学期期”字字段段值值为为“1”的的所所有有记记录录的的“学学期期”字字段段值值更更改改为为“一一”。该该查查询询名名为为:例例4-23学期的更新查询。学期的更新查询。 分分析析:“修修课课成成绩绩”表表有有“学学期期”字字段段,故故在在创创建建该该更更新新查查询询时时要要添添加加“修修课课成成绩绩”表。表。例例4-234-23( 更新查询更新查询例子例子 ) 单击单击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询查询类型类型”组上的组上的“更新更新”命令,显出命令,显出“更新查询更新查询”的的
66、“设设计视图计视图”。添加了添加了“更新更新到到”行行图图4-80 更新查询的更新查询的“设计视图设计视图” 设计视图设计视图例例4-23 4-23 (续(续 ) 当运行当运行“例例4-23对学期的更新查询对学期的更新查询”时,显出提示时,显出提示“确实确实要执行这种类型的动作查询吗?要执行这种类型的动作查询吗?”对话框对话框 。 单击上述对话框中的单击上述对话框中的“是是”按钮,显出提示按钮,显出提示“确实要更新确实要更新这些记录吗?这些记录吗?”对话框。对话框。4.8.4 4.8.4 删除查询删除查询 删除查询可以从一个或多个表中删除一组删除查询可以从一个或多个表中删除一组记录。使用删除查
67、询,将删除整个记录,而不记录。使用删除查询,将删除整个记录,而不是只删除记录中所选的字段。是只删除记录中所选的字段。 如果启用级联删除,则可以用删除查询从如果启用级联删除,则可以用删除查询从单个表中、从一对一关系的多个表中,或一对单个表中、从一对一关系的多个表中,或一对多关系中的多个表删除多关系中的多个表删除相关的相关的记录。记录。例例4-24 4-24 ( 删除查询删除查询 例子)例子) 例例4-24 在在“学学生生管管理理系系统统”数数据据库库中中,创创建建一一个个删删除除查查询询,从从“成成绩绩不不及及格格的的学学生生”表表中中将将“学学年年度度”字字段段值值为为 2004-2005 的
68、的所所有有记记录录删删除除。该该查查询询名名为为:例例4-24成成绩绩不不及及格格学生的删除查询。学生的删除查询。例例4-24 4-24 (续)(续) 单击单击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询查询类型类型”组上的组上的“删除删除”按钮,显出按钮,显出“删除查询删除查询”的的“设设计视图计视图”。 添加了添加了“删除删除”行行设计视图设计视图例例4-244-24(续)(续) 当运行当运行“例例4-24成绩不及格学生的删除查询成绩不及格学生的删除查询”时,显出提时,显出提示示“确实要执行这种类型的动作查询吗?确实要执行这种类型的动作查询吗?”对话框对话框 。 单击
69、上述对话框中的单击上述对话框中的“是是”按钮,显出提示按钮,显出提示“确实要删除选确实要删除选中的记录吗?中的记录吗?”对话框。对话框。4.9 SQL4.9 SQL查询查询 SQL(Structure Query Language)的中文)的中文名称为结构化查询语言。名称为结构化查询语言。SQL是一种专门针对数据是一种专门针对数据库操作的计算机语言。库操作的计算机语言。SQL 查询是使用查询是使用 SQL 语句语句创建的查询。创建的查询。 在在 Access 数据库中,查询对象本质上是一个数据库中,查询对象本质上是一个SQL语言编写的命令。当使用查询的语言编写的命令。当使用查询的“设计视图设计
70、视图”用可视化的方式创建一个查询对象后,系统便自动用可视化的方式创建一个查询对象后,系统便自动把它转换为相应的把它转换为相应的SQL语句保存起来。语句保存起来。 运行一个查询对象实质上就是执行该查询中指运行一个查询对象实质上就是执行该查询中指定的定的SQL 命令。命令。 在查询在查询“设计视图设计视图”中,为了能够看到查询对象相中,为了能够看到查询对象相应的应的SQL语句或直接编辑语句或直接编辑SQL语句,用户语句,用户可以从可以从“设计设计视图视图”切换到切换到“SQL视图视图”。在在“设计设计”选项卡中的选项卡中的“结结果果”组上的组上的“视图视图”按钮下方有一下拉按钮,单击该下按钮下方有
71、一下拉按钮,单击该下拉按钮,在弹出的下拉菜单中单击拉按钮,在弹出的下拉菜单中单击“SQL视图视图”命令,打命令,打开开“SQL视图视图”,在其中便可直接编辑,在其中便可直接编辑SQL语句语句,保存结,保存结果后同样可以得到一个查询对象。果后同样可以得到一个查询对象。SQL视图视图 某些某些 SQL 查询,称为查询,称为 SQL 特定查询,不能在查特定查询,不能在查询询“设计视图设计视图”的的“设计网格设计网格”中创建。对于传递查询、中创建。对于传递查询、数据定义查询和联合查询,必须直接在数据定义查询和联合查询,必须直接在“SQL视图视图”中中创建创建 SQL 语句。对于子查询,要在查询语句。对
72、于子查询,要在查询“设计网格设计网格”的的“字段字段”行或行或“条件条件”行中输入行中输入 SQL 语句。语句。 注意,在输入注意,在输入 SQL 语句时,除了汉字以外,其他语句时,除了汉字以外,其他所有字符必须是在英文输入法状态下输入的英文字符。所有字符必须是在英文输入法状态下输入的英文字符。例如,在例如,在SQL 语句中,象语句中,象“.”、“”、“(”、“)”、“”、“”、“”、“”、“%”、“#” 、“*” 、“?”和和“!”等字符等字符必须是英文字符。必须是英文字符。4.9.4.9.1 1 SELECT SELECT语句语句 SELECT语句是对关系数据库的表作选择运算的一个命令,语
73、句是对关系数据库的表作选择运算的一个命令,同时也支持表的投影操作。同时也支持表的投影操作。它可它可返回指定表中满足条件的记录。返回指定表中满足条件的记录。1SELECT语句的一般格式语句的一般格式 语法格式:语法格式:SELECT ALL | DISTINCT * | AS 别名别名1, AS 别名别名2 , FROM , WHERE GROUP BY , HAVING ORDER BY ASC | DESC, ASC | DESC , ASC | DESC ; 功能:从功能:从FROM 子句所指定的表中返回一个满足子句所指定的表中返回一个满足 WHERE 子句所指定的条件的记录集,该记录集中
74、只包含子句所指定的条件的记录集,该记录集中只包含SELECT语句中语句中所指定的字段。所指定的字段。 若要仅显示顶上若要仅显示顶上n个记录,可用个记录,可用“TOP n”代替代替“ALL”,其中,其中n为正整数。为正整数。SELECTSELECT语句语句实例(例实例(例4-25 4-25 )2SELECT语句的简单查询实例语句的简单查询实例 例例4-25 在数据库在数据库“学生管理系统学生管理系统”中使用中使用SQL视视图,创建一个名为图,创建一个名为“例例4-25查询学生全部信息查询学生全部信息”的查询的查询对象,查看对象,查看“学生学生”表的所有记录。表的所有记录。 在该查询的在该查询的“
75、SQL视图视图”中应键入的中应键入的SQL语句是:语句是: SELECT * FROM 学生学生; 或者键入或者键入SQL语句:语句: SELECT ALL * FROM 学生学生;注意,上述这两个注意,上述这两个SELECT 语句是等价的。语句是等价的。 SELECTSELECT语句实例(例语句实例(例4-24-26 6 ) 例例4-26 在数据库在数据库“学生管理系统学生管理系统”中使用中使用SQL视视图,创建一个名为图,创建一个名为“例例4-26查询学生部分信息查询学生部分信息”的查询的查询对象,查看对象,查看“学生学生”表的所有学生的学号、姓名、性别表的所有学生的学号、姓名、性别和出生
76、日期的信息。和出生日期的信息。 在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是:SELECT 学号学号, 姓名姓名, 性别性别, 出生日期出生日期 FROM 学生学生;SELECTSELECT语句实例语句实例 (例(例4-27 4-27 ) 例例4-27 在数据库在数据库“学生管理系统学生管理系统”中使用中使用SQL视图,创建视图,创建一个名为一个名为“例例4-27查询学生全部成绩查询学生全部成绩”的查询对象,查看所有学的查询对象,查看所有学生的学号、课程代码、课程名称和成绩的信息,并按课程代码升生的学号、课程代码、课程名称和成绩的信息,并按课程代码升序、学号升
77、序排序。查询的运行结果如图序、学号升序排序。查询的运行结果如图4-87所示。所示。 在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是: SELECT 修课成绩修课成绩.学号学号, 修课成绩修课成绩.课程代码课程代码, 课程课程.课程名称课程名称, 修课成绩修课成绩.成绩成绩 FROM 修课成绩修课成绩, 课程课程 WHERE 修课成绩修课成绩.课程代码课程代码=课程课程.课程代码课程代码 ORDER BY 修课成绩修课成绩.课程代码课程代码 , 修课成绩修课成绩.学号学号 ; 分析:分析:“修课成绩修课成绩”表中有表中有“学号学号”字段、字段、“课程代码课程代码”
78、字字段和段和“成绩成绩”字段,字段,“课程课程”表中有表中有“课程名称课程名称”字段,故在创字段,故在创建该建该SQL查询的查询的SELECT 语句时,一定要在语句时,一定要在FROM子句中指定子句中指定“修课成绩修课成绩”表和表和“课程课程”两个表(如:两个表(如:FROM 修课成绩修课成绩, 课程)。课程)。SELECTSELECT语句实例语句实例 (例(例4-24-28 8 )3SELECT 语句中的条件查询实例语句中的条件查询实例 例例4-28 在数据库在数据库“学生管理系统学生管理系统”中使用中使用SQL视视图,创建一个名为图,创建一个名为“例例4-28 查询女学生的基本信息查询女学
79、生的基本信息”的查询对象,要求查找的查询对象,要求查找“学生学生”表中的所有女学生的学表中的所有女学生的学号、姓名、性别和出生日期的信息。号、姓名、性别和出生日期的信息。 在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是: SELECT 学号学号, 姓名姓名, 性别性别, 出生日期出生日期 FROM 学生学生 WHERE 性别性别=女女;SELECTSELECT语句实例语句实例 (例(例4-24-29 9 ) 例例4-29 在数据库在数据库“学生管理系统学生管理系统”中使用中使用SQL视图,创建一个视图,创建一个名为名为“例例4-29查询查询1986年出生的男学生
80、的基本信息年出生的男学生的基本信息”的查询对象,要的查询对象,要求查找求查找“学生学生”表中的所有表中的所有1986年出生的男学生的学号、姓名、性别年出生的男学生的学号、姓名、性别和出生日期的信息。和出生日期的信息。 在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是: SELECT 学号学号, 姓名姓名, 性别性别, 出生日期出生日期 FROM 学生学生 WHERE 性别性别=男男 AND 出生日期出生日期=#1986-01-01# AND 出生日期出生日期=#1986-12-31#;或者键入或者键入SQL语句:语句: SELECT 学号学号, 姓名姓名, 性别性
81、别, 出生日期出生日期 FROM 学生学生 WHERE 性别性别=男男 AND YEAR(出生日期出生日期)=1986;或者键入或者键入SQL语句:语句: SELECT 学号学号, 姓名姓名, 性别性别, 出生日期出生日期 FROM 学生学生 WHERE 性别性别=男男 AND 出生日期出生日期 BETWEEN #1986-01-01# AND #1986-12-31#;注意,注意,本例的上述的三个本例的上述的三个SELECT 语句是等价的。语句是等价的。SELECTSELECT语句实例语句实例 (例(例4-30 4-30 ) 例例4-30 在数据库在数据库“学生管理系统学生管理系统”中使用中
82、使用SQL视图,创视图,创建一个名为建一个名为“例例4-30查询成绩不及格的学生查询成绩不及格的学生”的查询对象,查看的查询对象,查看有不及格成绩的学生的学号、课程代码、课程名称和成绩的信息有不及格成绩的学生的学号、课程代码、课程名称和成绩的信息, 并按课程代码升序、成绩降序排序。并按课程代码升序、成绩降序排序。 在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是:SELECT 修课成绩修课成绩.学号学号, 修课成绩修课成绩.课程代码课程代码, 课程课程.课程名称课程名称, 修课成绩修课成绩.成绩成绩FROM 修课成绩修课成绩, 课程课程WHERE 修课成绩修课成绩
83、.课程代码课程代码=课程课程.课程代码课程代码 AND 修课成绩修课成绩.成绩成绩=60 GROUP BY 修课成绩修课成绩.学号学号 ORDER BY 修课成绩修课成绩.学号学号;SELECTSELECT语句实例语句实例 (例(例4-34-34 4 ) 例例4-34 在数据库在数据库“学生管理系统学生管理系统”中,使用中,使用SQL视图,创建视图,创建一个名为一个名为“例例4-34统计每门课程的平均分、最高分和最低分统计每门课程的平均分、最高分和最低分”的的查询对象,查询结果要按课程名称升序排序。该查询的运行结果查询对象,查询结果要按课程名称升序排序。该查询的运行结果如图如图4-90所示。所
84、示。 在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是: SELECT 课程课程.课程名称课程名称, AVG(修课成绩修课成绩.成绩成绩) AS 平均分平均分, MAX(修课成绩修课成绩.成绩成绩) AS 最高分最高分, MIN(修课成绩修课成绩.成绩成绩) AS 最低分最低分 FROM 修课成绩修课成绩, 课程课程 WHERE 修课成绩修课成绩.课程代码课程代码=课程课程.课程代码课程代码 GROUP BY 课程课程.课程名称课程名称 ORDER RY 课程课程.课程名称课程名称;SELECTSELECT语句实例语句实例 (例(例4-34-35 5 )5SELE
85、CT 语句中使用语句中使用 HAVING 子句实例子句实例 例例4-35 在数据库在数据库“学生管理系统学生管理系统”中,使用中,使用SQL视图创建视图创建一个名为一个名为“例例4-35查询两科以上成绩不及格的学生查询两科以上成绩不及格的学生”的查询对的查询对象。象。 在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是:SELECT 学号学号, COUNT(*) AS 不及格的课程数不及格的课程数FROM 修课成绩修课成绩WHERE 成绩成绩=2;4.9.2 INSERT4.9.2 INSERT语句语句 INSERT语句是用于向表中添加记录的语句,该语句有两种语句是
86、用于向表中添加记录的语句,该语句有两种基本的用法,一种是用于添加一个记录,另一种是从其它表向目基本的用法,一种是用于添加一个记录,另一种是从其它表向目标表添加一个或多个记录。其语法格式如下。标表添加一个或多个记录。其语法格式如下。 语法格式语法格式1:添加单个记录:添加单个记录 INSERT INTO (字段字段1, 字段字段2, ) VALUES (值值1, 值值2, .); 语法格式语法格式2:添加多个记录:添加多个记录 INSERT INTO (字段字段1, 字段字段2, ) SELECT 源表源表.字段字段1, 字段字段2, FROM ;功能:功能: 在数据库表中添加记录。在数据库表中
87、添加记录。INSERTINSERT语句语句实例实例 (例(例4-36 4-36 ) 例例4-36 在数据库在数据库“学生管理系统学生管理系统”中,使用中,使用SQL视图创建一个名为视图创建一个名为“例例4-36添加一个新记录添加一个新记录”的的查询对象。使用查询对象。使用INSERT语句在数据库语句在数据库“学生管理系学生管理系统统”中的中的“学生学生”表中添加一个记录。表中添加一个记录。 添加记录的内容为:添加记录的内容为: 03202038 , 梁惠芬梁惠芬, 3, 女女, #1984-11-28#, True, 752, 舞蹈舞蹈 。 在该查询的在该查询的“SQL视图视图” ,键入下面的
88、,键入下面的SQL语句:语句: INSERT INTO 学生学生(学号学号, 姓名姓名, 班级号班级号, 性别性别, 出生日期出生日期, 优干优干, 高考总分高考总分, 特长特长) VALUES (03202038, 梁惠芬梁惠芬, 3, 女女, #1984-11-28#, True, 752, 舞蹈舞蹈);INSERTINSERT语句语句实例实例 (例(例4-37 4-37 ) 例例4-37 在数据库在数据库“学生管理系统学生管理系统”中,假定有中,假定有一个其结构与一个其结构与“学生学生”表结构完全相同的表结构完全相同的“临时学生临时学生”表,在表,在“临时学生临时学生”表中已有表中已有3
89、条记录(如图条记录(如图4-94所示)。使用所示)。使用SQL视图创建一个名为视图创建一个名为“例例4-37往学生往学生表添加一组新记录表添加一组新记录”的查询对象。使用的查询对象。使用INSERT语句语句将将“临时学生临时学生”表中的所有记录添加到表中的所有记录添加到“学生学生”表中。表中。运行该查询结果如图运行该查询结果如图4-95所示。所示。 在该查询的在该查询的“SQL视图视图” 中应键入的中应键入的SQL语句是:语句是:INSERT INTO 学生学生 SELECT * FROM 临时学生临时学生;4.9.3 UPDATE4.9.3 UPDATE语句语句 UPDATE语句用于修改更新
90、数据表中记录的内容。语句用于修改更新数据表中记录的内容。语法格式:语法格式: UPDATE SET WHERE ;功能:功能: 对指定的表中满足对指定的表中满足的记录进行修改。如的记录进行修改。如果省略了果省略了WHERE子句,则对该指定表的全部记录进行修改。子句,则对该指定表的全部记录进行修改。说明:说明:(1)指定要修改的表。指定要修改的表。(2)“字段字段1=值值1”表示将表示将的值修改为的值修改为,涉,涉及多个字段的修改时需要用逗号分隔各个字段修改部分。及多个字段的修改时需要用逗号分隔各个字段修改部分。(3)用于指定用于指定要修改的记录需要满足的条件要修改的记录需要满足的条件。4.9.
91、3 UPDATE4.9.3 UPDATE实例实例(例(例4-38 4-38 ) 例例4-38 在在“学生管理系统学生管理系统”数据库中,使用数据库中,使用SQL视图建立一个名为视图建立一个名为“例例4-38修改学号为修改学号为03101001学学生的特长生的特长”的查询,将的查询,将“学生学生”表中学号为表中学号为“03101001”的学生的特长改为的学生的特长改为“排球排球”。 在该查询在该查询“SQL视图视图” 中键入下面的中键入下面的SQL语句:语句: UPDATE 学生学生 SET 特长特长= 排球排球 WHERE 学号学号= 03101001;4.9.4 DELETE4.9.4 DE
92、LETE语句语句 DELETE语句用于删除数据表中的一个或多个记录。语句用于删除数据表中的一个或多个记录。它的语法格式如下:它的语法格式如下: 语法格式:语法格式:DELETE * FROM WHERE 功能:删除指定表中满足功能:删除指定表中满足的所有记的所有记录。如果省略了录。如果省略了WHERE子句,则删除该指定表的所有子句,则删除该指定表的所有记录。记录。 说明:说明: (1)指定要删除记录的表。指定要删除记录的表。 (2)指定要删除的记录需要满足的指定要删除的记录需要满足的条件。条件。 DELETEDELETE语句语句实例(例实例(例4-39 4-39 ) 例例4-39 在在“学学生
93、生管管理理系系统统”数数据据库库中中建建立立一一个个名名为为“例例4-39删删除除一一个个记记录录”的的查查询询,从从“学学生生”表中删除学号为表中删除学号为“03202038”的记录。的记录。 在该查询在该查询“SQL视图视图” 中键入下面的中键入下面的SQL语句:语句: DELETE * FROM 学生学生 WHERE 学号学号=03202038;4.9.5 SQL4.9.5 SQL特定查询特定查询 对于数据定义查询、传递查询、联合查询,对于数据定义查询、传递查询、联合查询,不能在设计网格中创建,必须直接在不能在设计网格中创建,必须直接在“SQL视视图图”中创建中创建 SQL 语句。语句。
94、1数据定义查询数据定义查询 数据定义查询可以创建、删除或修改表,数据定义查询可以创建、删除或修改表,也可以在数据库表中创建索引。也可以在数据库表中创建索引。(1 1)创建表创建表 CREATE TABLE CREATE TABLE(例(例4-40 4-40 )(1)创建表)创建表 CREATE TABLE简单的语法格式:简单的语法格式:CREATE TABLE ( , , ); 例例4-40 在在“学生管理系统学生管理系统”数据库中,使用数据库中,使用SQL视图创建一个名为视图创建一个名为“例例4-40创建创建勤工助学勤工助学表表”的查询对象。的查询对象。“勤工助学勤工助学”表结构如表表结构如
95、表4-6所示。所示。 在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是:CREATE TABLE 勤工助学勤工助学(学号学号 TEXT(8), 岗位名称岗位名称 TEXT(20), 工资工资 NUMERIC);(2 2)改变表改变表 ALTER TABLE ALTER TABLE(例(例4-41 4-41 ) 通过通过 ALTER TABLE 语句可以用多种方式修改一个现语句可以用多种方式修改一个现有的表。有的表。 在在ALTER TABLE 语句中,使用语句中,使用 ADD COLUMN 子句子句向表中添加新字段。可以指定字段名称、数据类型和可选大向表中添加新字
96、段。可以指定字段名称、数据类型和可选大小。小。 例例4-41 在数据库在数据库“学生管理系统学生管理系统”中,使用中,使用SQL视图创建视图创建一个名为一个名为“例例4-41往勤工助学表添加字段往勤工助学表添加字段”查询对象。添加的字查询对象。添加的字段名为段名为“上班时间段上班时间段”、文本数据类型、字段大小为、文本数据类型、字段大小为 160。在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是: ALTER TABLE 勤工助学勤工助学 ADD COLUMN 上班时间段上班时间段 TEXT(160);(2 2)改变表改变表 ALTER TABLE ALTER T
97、ABLE(例(例4-424-42) 在在ALTER TABLE 语句中,使用语句中,使用 ALTER COLUMN 可可更改现有字段的数据类型。可以指定字段名称、新的数据类更改现有字段的数据类型。可以指定字段名称、新的数据类型及可选字段大小。型及可选字段大小。 例例4-42 在数据库在数据库“学生管理系统学生管理系统”中,使用中,使用SQL视图视图创建一个名为创建一个名为“例例4-42更改勤工助学表中的字段更改勤工助学表中的字段”查询对象。查询对象。将将“勤工助学勤工助学”表中称为表中称为“岗位名称岗位名称”的文本数据类型字段的文本数据类型字段的字段大小原为的字段大小原为20更改为更改为 30
98、。 在该查询的在该查询的“SQL视图视图”中应键入的中应键入的SQL语句是:语句是: ALTER TABLE 勤工助学勤工助学 ALTER COLUMN 岗位名称岗位名称 TEXT(30);(3 3)删除表删除表 DROP TABLE DROP TABLE简单的语法格式:简单的语法格式: DROP TABLE ; 例例4-43 在数据库在数据库“学生管理系统学生管理系统”中,假定已中,假定已经创建了经创建了“临时勤工助学临时勤工助学”表。使用表。使用SQL视图创建一视图创建一个名为个名为“例例4-43删除临时勤工助学表删除临时勤工助学表”的查询对象。的查询对象。 在该查询的在该查询的“SQL视
99、图视图” 中应键入的中应键入的SQL语句是:语句是: DROP TABLE 临时勤工助学临时勤工助学;(4 4)创建索引创建索引 CREATE INDEX CREATE INDEX (例(例4-444-44)(4)创建索引)创建索引 CREATE INDEX 语句语句 对现有表创建一个新索引。对现有表创建一个新索引。 例例4-44 在数据库在数据库“学生管理系统学生管理系统”中,使用中,使用SQL视图创建一个名为视图创建一个名为“例例4-44对勤工助学表创建一对勤工助学表创建一个新索引和主键个新索引和主键”的查询对象。要对的查询对象。要对“勤工助学勤工助学”表表的的“学号学号”字段创建一个索引
100、,并把字段创建一个索引,并把“学号学号”字段设字段设置为主键。置为主键。 在该查询的在该查询的“SQL视图视图” 中应键入的中应键入的SQL语句是:语句是: CREATE INDEX 学号学号 ON 勤工助学勤工助学(学号学号) WITH PRIMARY;2. 2. 子查询子查询 子查询由包含在另一个选择查询或操作查询之内子查询由包含在另一个选择查询或操作查询之内的的 SQL SELECT 语句组成。可以在查询语句组成。可以在查询“设计视图设计视图”的的“设计网格设计网格”中的中的“字段字段”行输入这些语句来定行输入这些语句来定义新字段,或在义新字段,或在“条件条件”行来定义字段的条件。行来定
101、义字段的条件。 在子查询中还可创建子查询(嵌套子查询)。在子查询中还可创建子查询(嵌套子查询)。 在在SELECT语句中使用的子查询,是指嵌套于语句中使用的子查询,是指嵌套于SELECT语句的语句的WHERE子句中的子句中的 SELECT 语句这种语句这种类型的子查询。类型的子查询。子查询子查询(例(例4-45 4-45 ) 例例4-45 在数据库在数据库“学生管理系统学生管理系统”中,使用中,使用SQL视图创建一个名为视图创建一个名为“例例4-45查询已修课程代码查询已修课程代码为为20000005课程的学生情况课程的学生情况”的查询对象。的查询对象。 在该查询在该查询 “SQL视图视图”
102、中应键入的中应键入的SQL语句是:语句是: SELECT * FROM 学生学生 WHERE 学号学号 IN (SELECT 学号学号 FROM 修课成绩修课成绩 WHERE 课程代码课程代码=20000005);3. 3. 联合查询联合查询 联合查询将两个或更多个表或查询中的字段合并联合查询将两个或更多个表或查询中的字段合并到查询结果的一个字段中。使用联合查询可以合并两个到查询结果的一个字段中。使用联合查询可以合并两个表中的数据。表中的数据。 例例4-46 在数据库在数据库“学生管理系统学生管理系统”中,使用中,使用SQL视图创建一个名为视图创建一个名为“例例4-46联合查询联合查询1986
103、年出生的学年出生的学生情况生情况”的查询对象。该查询要求是:显出的查询对象。该查询要求是:显出“例例4-29查查询询1986年出生的男学生的基本信息年出生的男学生的基本信息”查询中的所有记查询中的所有记录和显出录和显出“例例4-28查询女学生的基本信息查询女学生的基本信息”查询中的所查询中的所有有1986年出生的女学生记录,查询结果按年出生的女学生记录,查询结果按“性别性别”排排序。该查询的运行结果如图序。该查询的运行结果如图4-96所示。所示。联合查询联合查询(例(例4-464-46 续)续) 在该查询在该查询 “SQL视图视图” 中应键入的中应键入的SQL语句是:语句是:SELECT 学号学号, 姓名姓名, 性别性别, 出生日期出生日期 FROM 例例4-29查询查询1986年出生的男学生的基本信息年出生的男学生的基本信息 UNION SELECT 学号学号, 姓名姓名, 性别性别, 出生日期出生日期 FROM 例例4-28查询女学生的基本信息查询女学生的基本信息 WHERE YEAR(出生日期出生日期)=1986 ORDER BY 性别性别;运行该查询运行该查询的结果的结果