第三章 查询
本章主要学习查询的基本操作,包括查询的概念、查询的创建和使用。
3.1 认识查询
3.1.1 查询的功能
查询是对数据库表中的数据进行查,同时产生一个类似于表的结果,在 Access 中可以
方便地创建查询,在创建查询的过程中定义要查询的内容和准则, Access 将根据定义的内容
和准则在数据库表中搜索符合条件的记录。利用查询可以实现许多功能。
1. 选择字段
在查询中,可以只选择表中的部分字段如建立一个查询,只显示 “ 教师 ” 表中每名教师的
姓名、性别、工作时间和系别。利用查询这一功能,可以通过选择一个表中的不同字段生成所需
的多个表。
2. 选择记录
根据指定的条件查所需的记录,并显示到的记录。如建立一个查询,只显示 “ 教师 ” 表
中 1992 年参加工作的男教师。
3. 编辑记录
编辑记录主要包括添加记录、修改记录和删除记录等。在 Access 中,可以利用查询添加、
修改和删除表中的记录。如将 “ 计算机实用软件 ” 不及格的学生从 “ 学生 ” 表中删除。
4. 实现计算
查询不仅可以到满足条件的记录,而且还可以在建立查询的过程中进行各种统计计算,
如计算机每门课程的平均成绩。另外还可以建立一个计算字段,利用计算字段保存计算的结果。
5. 建立新表
利用查询得到的结果可以建立一个新表。如将 “ 计算机实用软件 ” 成绩在 90 分以上的学
生出来并存放在一个新表中。
6. 建立基于查询的报表和窗体
为了从一个或多个表中选择合适的数据显示在报表或窗体中,用户可以先建立一个查询,
然后将查询的结果作为报表或窗体的数据源。每次打印报表或窗体时,该查询就从它的基表中检
索出符合条件的最新记录。这样也提高了报表或窗体的使用效果。
3.1.2 查询的类型
1.选择查询
选择查询是最常见的查询类型,它根据指定的查询准则从一个或多个表中检索数据。也可以
使用选择查询来对记录进行分组,并且对记录作总计、计数、平均值以及其他类型的总和的计算。
2.交叉表查询
交叉表查询显示来源于表中某个字段的总结值(合计、计数以及平均),并将它们分组,一
组列在数据表的左侧,一组列在数据表的上部,在数据表行与列的交叉处显示表中某字段统计值。
3.参数查询
参数查询是一种利用对话框来提示用户输入准则的查询。
4.操作查询
操作查询与选择查询类似,都是有用户指定查询记录的条件,但选择查询是检查符合特定条
件的一组记录,而操作查询是在一次查询操作中对所得结果进行编辑等操作。操作查询共有四种
类型:删除、更新、追加与生成表。
删除查询: 从一个或多个表中删除一组记录。
更新查询: 对一个或多个表中的一组记录作全局的更改。
追加查询: 从一个或多个表将一组记录追加到一个或多个表的尾部。
生成表查询:生成表查询是利用一个或多个表中的全部或部分数据新建表。
5.SQL 查询
SQL 查询是用户使用 SQL 语句创建的查询。 SQL 查询主要包括:联合查询、传递查询、
数据定义查询和子查询。
联合查询 : 这种类型的查询将来自一个或多个表或查询的字段(列)组合为查询结果
中的一个字段或列。
传递查询: 这种类型的查询使用服务器能接受的命令直接将命令发送到 ODBC 数据
库。
数据定义查询: 这种类型的查询可以创建、删除、更改表或创建数据库中的索引。
子查询: 这种类型的查询包含另一个选择查询或操作查询中的 SQL SELECT 语句。可
以在查询设计网格的 “ 字段 ” 行输入这些语句来定义新字段,或在 “ 准则 ” 行来定
义字段的准则。
3.1.3 建立查询的准则
1 .准则中的运算符
关系运算符: = (等于)、 <> (不等于)、 > (大于)、 < (小于)、 <= (大于
等于)、 >= (小于等于)。
逻辑运算符: ot (非)、 And (且)、 Or (或)。
特殊运算符: In 如:年龄 In ( 17 , 18 , 19 )
Between 如:年龄 Between 17 and 20
Like 如:姓名 Like “ 王 %”
Is ull
Is ot ull
2. 准则中的函数
数值函数 : Abs() (绝对值)、 Int() (取整)、 Sqr() (平方根)、 Sgn() (符号)。
字符函数 : Space() (空格字符串)、 String() (重复字符串)、 Left() (取左串)、 Right()
(取右串)、 Len() (长度)、 Ltrim() (去前导空格)、 Rtrim() (去后导空格)、 Trim() (去
前后空格)、 Mid() (取中串)。
日期函数: Day() (日)、 Month() (月)、 Year() (年)、 Weekday() (周)、 Hour()
(小时)、 date() (日期)。
统计函数: Sum() (汇总)、 Avg() (平均)、 Count() (记数)、 Max() (最大值)、
Min() (最小值)。
字段名实 例
性 别"男"
职 称"教授" or "副教授"
姓 名Like "王*"
姓 名Like "王?"
姓 名Left([姓名],1)= "王"
姓 名Len([姓名])<=3
课程名
称
姓 名ot "王军”
姓 名
姓 名
联系电
话
简 历Rightt([简历],2)= "顺义"
学生编Mid([学生编号],3,2)= "03"
号
工作时
间
工作时
间
工作时
间
工作时Year([工作时间])=1999
间
工作时Year([工作时间])=1999 And Month([工作时间])=4
间
Is ull Is ot ull "" Like "[A-Z]*" Between #92-01-01# And #92-12-31# Between Date() And Date()-20 注意 : ● Like 运算符, * 表示匹配零个或多个字符,?表示匹配一个字符, # 表示匹配一个数 字,还可以用方扩号描述一个范围。 ● 日期数据用 # 号括起来。 3.2 创建选择查询 3.2.1 创建不带条件的查询 一般有两种方法 :查询向导 和 “设计”视图。 1 .使用“查询向导” 例: 查询学生表中的“姓名”、“性别”和“年龄”。 ( 1 )在“教学管理”数据库窗口中,单击“查询”对象,然后双击“使用向导创建查询”,出现 “简单查询向导”第一个对话框,如图 3-1 所示。 也可以单击“新建”按钮,在出现的如图 3-2 所示的“新建查询”对话框中,选择“简单查询向 导”,然后单击“确定”按钮,出现如图 3-1 所示的“简单查询向导”第一个对话框。 ( 2 )“简单查询向导”第一个对话框中,从“表 / 查询”组合框中选择“学生”表,在从“可用 字段”列表中选择“姓名”、“性别”和“年龄”字段。 ( 3 )单击“下一步”按钮,出现如图 3-2 所示的“简单查询向导”第二个对话框。该对话框 在有数值型字段时才出现。在该对话框中可选择“明细”和“汇总”。选择“明细”,查看详细信息;选 择“汇总”,则对一组或全部记录进行各种统计。这里选择“明细”。 ( 4 )单击“下一步”按钮,出现“简单查询向导”第三个对话框。如图 3-4 所示。 ( 5 )“简单查询向导”第三个对话框的“请为查询指定标题”文本框中输入标题,这里使用默 认标题“学生 查询”。 ( 6 )单击“完成”按钮。 2 .使用“设计”视图 例:查询学生选课成绩,并显示“学生编号”、“姓名”、“课程名称”和“成绩”等字段信息。 ( 1 )在“教学管理”数据库窗口中,单击“查询”对象,然后双击“在设计视图中创建查询”, 出现查询“设计”视图,并显示一个“显示表”对话框,如图 3-6 所示。 ( 2 )选择“表”选项卡,添加“学生”表,“选课成绩”和“课程”表,关闭“显示表”对话框,如图 3-7 所示。 ( 3 )选择字段,有三种方法:一是单击某字段,然后拖到“设计网格”的字段行上;二是 双击要选的字段;三是单击“设计网格”中字段行上要放置字段的列,然后单击右侧向下箭头按钮, 并从列表中选择所要的字段。结果如图 2-8 所示。 ( 4 )单击工具栏上的“保存”按钮,保存成“学生选课成绩”。 ( 5 )单击工具栏上的“视图”按钮,或单击工具栏上的“运行”按钮,切换到“数据表”视图, 可以看到查询结果,如图 3-9 所示。 3 .运行查询 步骤: ( 1 )在数据库窗口中,单击“查询”对象。 ( 2 )选择要运行的查询,然后单击“打开”按钮,或双击要运行的查询。 3.2.2 创建带条件的查询 这种查询需要通过“设计”视图来建立,在“设计”视图的“准则”行输入查询条件。 例:查询 1988 年参加工作的男教师。 ( 1 )在“教学管理”数据库窗口中,单击“查询”对象,然后双击“在设计视图中创建查询”, 出现查询“设计”视图,并显示一个“显示表”对话框,如图 3-6 所示。 ( 2 )选择“表”选项卡,添加“教师”表,关闭“显示表”对话框,如图 3-10 所示。 ( 3 )选择“姓名”、“性别”、“工作时间”、“学历”、“职称”字段。 ( 4 )在准则行输入条件,如图 3-10 所示。 ( 5 )单击工具栏上的“保存”按钮,存储查询为“查询 1988 年参加工作的男教师”。 ( 6 )单击工具栏上的“视图”按钮,或单击工具栏上的“运行”按钮,切换到“数据表”视图。 可以看到查询结果,如图 3-11 所示。 3.3 在查询中进行计算 查询中的计算主要有:求和、计数、求最大值、求最小值、求平均值。 3.3.1 总计查询 1 .创建总计查询 例:统计教师人数 ( 1 )在“教学管理”数据库窗口中,单击“查询”对象,然后双击“在设计视图中创建查询”, 出现查询“设计”视图,并显示一个“显示表”对话框,如图 3-6 所示。 ( 2 )选择“表”选项卡,添加“教师”表,关闭“显示表”对话框。 ( 3 )双击“教师”表中的“教师编号”字段,将其添加到字段行的第一列中。 ( 4 )单击“视图”菜单中的“合计”命令,或单击工具栏上的“合计”按钮,这时在“设计网格” 中插入一个“合计”行,并自动将“教师编号”字段的“总计”单元设置成 Group by 。 ( 5 )单击“教师编号”字段的“总计”行单元格,并单击其右侧的向下箭头按钮,然后从下拉 列表中选择 Count 函数,如图 3-12 所示。 ( 6 )单击工具栏上的“保存”按钮,存储查询为“统计教师人数”。 ( 7 )单击工具栏上的“视图”按钮,或单击工具栏上的“运行”按钮,切换到“数据表”视图。 可以看到查询结果,如图 3-13 所示。 例:统计 1988 年参加工作的教师人数 ( 1 )在“教学管理”数据库窗口中,单击“查询”对象,然后双击“在设计视图中创建查询”, 出现查询“设计”视图,并显示一个“显示表”对话框,如图 3-6 所示。 ( 2 )选择“表”选项卡,添加“教师”表,关闭“显示表”对话框。 ( 3 )将“教师编号”字段和“工作时间”字段添加到“设计网格”的字段行中。 ( 4 )单击“视图”菜单中的“合计”命令,或单击工具栏上的“合计”按钮,这时在“设计网格” 中插入一个“合计”行,并自动将“教师编号”字段的“总计”单元设置成 Group by 。 ( 5 )“工作时间”的“总计”行设为“ Where” ,准则行设为“ Between #1988-1-1# and #1988-12-31# ”。 ( 6 )“教师编号”的“总计”设为 Count 。如图 3-14 所示。 ( 7 )单击工具栏上的“保存”按钮,存储查询为“ 88 年参加工作的教师人数”。 ( 8 )单击工具栏上的“视图”按钮,或单击工具栏上的“运行”按钮,切换到“数据表”视图。 可以看到查询结果,如图 3-15 所示。 2 .总计项 总计项及含义 选定 若要查 使用下列字段数据类型 Sum 字段值的总和。 数字、日期 / 时间、货币和自动编号 Avg 字段的平均值。 数字、日期 / 时间、货币和自动编号 Min 字段的最小值。 文本、数字、日期 / 时间、货币和自 动编号 Max 字段的最大值。 文本、数字、日期 / 时间、货币和自 动编号 Count 字段值的数量,不包括 文本、备注、数字、日期 / 时间、货 ull (空)值。 币、自动编号、是 / 否和 OLE 对象 数字、日期 / 时间、货币和自动编号 StDev 字段的标准偏差值。 数字、日期 / 时间、货币和自动编号 Var 字段的方差值。 选定 用于 定义要执行计算的组。例如,如果要按类别显示销售额总计, Group By 请对 “ 类别名称 ” 字段选定 Group By 。 创建表达式中包含合计函数的计算字段。通常在表达式中使用 Expression 多个函数时,将创建计算字段。 指定不用于分组的字段准则。如果选定这个字段选项, Where Microsoft Access 将清除 “ 显示 ” 复选框,隐藏查询结果中的这 个字段。 Last 求在表或查询中最后一条记录的字段值 First 求在表或查询中第一条记录的字段值 3.3.2 分组总计查询 在“设计”视图中将用于分组的字段的“总计”设置成 Group By 。 例: 统计各类职称的教师人数。 ( 1 )在“教学管理”数据库窗口中,单击“查询”对象,然后双击“在设计视图中创建查询”, 出现查询“设计”视图,并显示一个“显示表”对话框,如图 3-6 所示。 ( 2 )选择“表”选项卡,添加“教师”表,关闭“显示表”对话框。 ( 3 )将“教师编号”字段和“职称”字段添加到“设计网格”的字段行中。 ( 4 )单击“视图”菜单中的“合计”命令,或单击工具栏上的“合计”按钮,这时在“设计网格” 中插入一个“合计”行,并自动将“教师编号”字段的“总计”单元设置成 Group by 。 ( 5 )“职称”的“总计”行设为“ Group By ”。 ( 6 )“教师编号”的“总计”设为 Count 。如图 3-16 所示。 ( 7 )单击工具栏上的“保存”按钮,存储查询为“ 88 年参加工作的教师人数”。 ( 8 )单击工具栏上的“视图”按钮,或单击工具栏上的“运行”按钮,切换到“数据表”视图。 可以看到查询结果,如图 3-17 所示。 3.3.3 添加计算字段 计算字段是指根据一个或多个字段并使用表达式建立的新字段。它显示一个表达式的结果 而不是所存储的数据。每当表达式中的某个值改变时,该值都重新计算。 例:查询每个学生的“入学日”。 ( 1 )在“教学管理”数据库窗口中,单击“查询”对象,然后双击“在设计视图中创建查询”, 出现查询“设计”视图,并显示一个“显示表”对话框。 ( 2 )选择“表”选项卡,添加“学生”表,关闭“显示表”对话框。 ( 3 )将“学生编号”、“姓名”字段添加到“设计网格”的字段行中。 ( 4 )在字段行的第四列输入“入学日:Day([ 入学日期 ]) ”,如图 3-18 所示。 ( 5 )单击工具栏上的“保存”按钮,保存为“学生入学日查询”。 3.4 创建交叉表查询 3.4.1 认识交叉表查询 将来源于某个表中的字段进行分组,一组列在数据表的左侧,一组列在数据表的上部,在 行与列的交叉处显示表中某个字段的各种计算值。如图 3-20 ,就是一个交叉表查询。 3.4.2 创建交叉表查询 1.使用“查询向导” 例:查询每班男女生人数。 ( 1 )在“教学管理”数据库窗口中,单击“查询”对象,然后单击“新建”按钮,出现“新建查询” 对话框,如图 3-21 所示。 (2)双击“交叉表查询向导”,出现“交叉表查询向导”第一个对话框,如图 3-22 所示。 (3)交叉查询的数据源可以是表,也可以是查询。在此选择查询,并选“学生情况查询”, 如图 3-23 所示。 (4)单击“下一步”按钮,出现“交叉表查询向导”第二个对话框,如图 3-24 所示。选择“班 级”的值作为行标题。 (5)单击“下一步”按钮,出现“交叉表查询向导”第三个对话框,如图 3-25 所示。选择“性 别”的值作为列标题。 ( 6 )单击“下一步”按钮,出现“交叉表查询向导”第四个对话框,如图 3-26 所示。选择交 叉处计算的数据为“姓名”计数。 ( 7 )单击“下一步”按钮,出现“交叉表查询向导”最后一个对话框,如图 3-27 所示。输入 查询名称。单击“完成”按钮。 2 .使用“设计”视图 ( 1 )在“教学管理”数据库窗口中,单击“查询”对象,然后双击“在设计视图中创建查询”, 出现查询“设计”视图,并显示一个“显示表”对话框。 ( 2 )选择“表”选项卡,添加“学生”表、“课程”表和“选课成绩”表,关闭“显示表”对话框。 ( 3 )双击“学生”列表中的“姓名”字段,将其放到“字段”行的第 1 列,然后双击“课程”列表 中的“课程名称”字段和“选课成绩”表的“成绩”字段,将它们分别放到“字段”行的第 2 列和第 3 列。 ( 4 )单击工具栏的“查询类型”按钮右侧的向下箭头按钮,然后从下拉列表中选择“交叉表 查询”选项。 ( 5 )设置“姓名”、“课程名称”、“成绩”列的总计行分别为“ Group by ”,“ Group by ”和 “ First ”; 交叉表行分别为“行标题”,“列标题”及“值”。如图 3-28 所示。 ( 6 )单击工具栏上的“保存”按钮,保存并命名为“学生课程成绩交叉表”。 ( 7 )运行结果如图 3-29 所示。 3.5 创建参数查询 参数查询利用对话框,提示用户输入参数,并检查符合输入参数的记录或值。 3.5.1 单参数查询 创建单参数查询,就是在字段中指定一个参数,在执行参数查询时,用户输入一个参数值。 例: 按姓名查询学生的成绩。 ( 1 )以“设计”视图打开“学生选课成绩”查询。 ( 2 )在“姓名”字段的“准则”单元输入“ [ 请输入学生姓名: ] ”,如图 3-30 所示。 ( 3 )单击工具栏上的“运行”按钮,这时屏幕上会出现“输入参数值”对话框,如图 3-31 所 示。 ( 4 )输入“刘力”,单击“确定”按钮,查询结果如图 3-32 所示。 ( 5 )选择“文件”菜单中的“另存为”,保存名为“学生选课成绩参数查询”。 3.5.2 多参数查询 基本方法类似。只需在多个字段的准则栏中输入提示文本。 一、填空题 1、根据指定的查询准则从一个或多个的表中检索数据称为_________________。 2、SQL 查询是用户使用 SQL 语句创建的查询。 SQL 查询主要包括: ________________ 。 3、“新建查询”对话框中有________________种建立查询的方式。 4、使用设计视图创建查询,可以在数据库窗口中,单击“查询”对象,然后双击 ________________。 5、创建带条件的查询这种查询需要通过“设计”视图来建立,在“设计”视图的 ________________行输入查询条件。 6、统计 1998 年参加工作的教师人数,使用 Between 操作符,条件表达式为: ________________。 7、在“设计”视图中将用于分组的字段的“总计”设置成________________。 8、________________是指根据一个或多个字段并使用表达式建立的新字段。它显示一个 表达式的结果而不是所存储的数据。 9、交叉表查询将来源于某个表中的字段进行分组,________________ ,在行与列的交叉 处显示表中某个字段的个种计算值。 10、创建按姓名查询学生的成绩单参数查询,提示信息为“请输入学生姓名”,可以在“姓 名”字段的“准则”单元输入________________。 二、选择题 1 .以下叙述中, ____是正确的。 A. 在数据较多、较复杂的情况下使用筛选比使用查询的效果好 B.查询只从一个表中选择数据.而筛选可以从多个表中获取数据 C. 通过筛选形成的数据表,可以提供给查询、视图和打印使用 D.查询可将结果保存起来,供下次使用 2 .利用对话框提示用户输入参数的查询过程称为( )。 A .选择查询 B .参数查询 C .操作查询 D .SQL 查询 3 .以下叙述中,( )是错误的。 A .查询是从数据库的表中筛选出符合条件的记录,构成 — 个新的数据集合 B .查询的种类有:选择查询、参数查询、交叉查询、操作查询和 SQL 查询 C .创建复杂的查询不能使用查询向导 D .可以使用函数、逻辑运算符、关系运算符创建复杂的查询 4 .查询中的 “ 英语精读 ” 的列记录的平均值,和班级 =“ 英语 A 班 ” 的条件应写在设 计视图中( )行。 A. 总计 B. 字段 C. 准则 D. 显示 5 .筛选图书编号是 "01" 或 "02" 的记录,可以在准则中输入 ___________ 。(多选) A . "01" or "02" B . not in ("01" , "02") C . in ("01" , "02") D . not ("01" and "02") 6 .查看工资表中长安商品公司实发工资为 2000 元以上(除 2000 元)人员的记录 , 表达式为 _________ 。 ( 多选 ) A. 部门 =" 长安商品公司 " AD 实发工资 >2000 B. 部门 =" 长安商品公司 " AD 实发工资 >=2000 C. 部门 = 长安商品公司 AD 实发工资 >=2000 D. 实发工资 >2000 AD 部门 =" 长安商品公司 " 7 . 内部计算函数 “Sum” 的意思是求所在字段内所有的值的 ______ 。 A. 和 B. 平均值 C. 最小值 D. 第一个值 8 . 内部计算函数 “Avg” 的意思是求所在字段内所有的值的 ______ 。 A. 和 B. 平均值 C. 最小值 D. 第一个值 9 . 在 SQL 查询 GROUP BY 语句用于 ____________ 。 A. 选择行条件 B. 对查询进行排序 C. 列表 D. 分组条件 10 .查看工资表中实发工资为 2000 元以上(除 2000 元)至 4000 元(除 4000 元)以下 的人员记录 , 表达式为 ______ 。 A. 实发工资 >2000 OR 实发工资 <4000 B. 实发工资 >2000 AD 实发工资 <4000 C. 实发工资 >=2000 AD 实发工资 =<4000 D. 实发工资 (Between 2000 and 4000) 填空题 1.选择查询 2.联合查询、传递查询、数据定义查询和子查询 3.5种 4.“在设计视图中创建查询” 5.“准则” 6.Between #1998-1-1# and #1998-12-31#。 7.Group By。 8.计算字段 9.一组列在数据表的左侧,一组列在数据表的上部 10.“[请输入学生姓名:]” 选择题 D B C C AC AD A B D B 主讲教师:杨树林 北京印刷学院副教授, 硕士研究生 任教经历: 1988-7 —— 2002-10 辽宁师范大学计算机系 2002-10 —— 2004- 现在 北京印刷学院计算机系,北大青鸟 ACCP 计算学院 成就: 硕士生研究生证 清华大学访问学者 全国多媒体教育软件大赛三等奖 在省部级以上刊物发表文章30余篇,出版专著4部,主持与市级以上科研项目6项 多年从事计算机教育,有培训正轨本科生的教育经历,也有 IT 培训的经历,教学经 验丰富,专业知识扎实,熟悉常用软件的应用,有较强的科研能力。 辽宁省计算机学会理事 大连 CBE 及人工智能学会理事 全国计算机基础教育委员会会员
本文发布于:2023-05-28 00:01:21,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/falv/fa/87/123480.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |