数据库查询

更新时间:2024-11-05 22:36:52 阅读: 评论:0


2023年5月28日发(作者:validation)

第三章 查询

本章主要学习查询的基本操作,包括查询的概念、查询的创建和使用。

3.1 认识查询

3.1.1 查询的功能

查询是对数据库表中的数据进行查,同时产生一个类似于表的结果,在 Access 中可以

方便地创建查询,在创建查询的过程中定义要查询的内容和准则, Access 将根据定义的内容

和准则在数据库表中搜索符合条件的记录。利用查询可以实现许多功能。

1. 选择字段

在查询中,可以只选择表中的部分字段如建立一个查询,只显示 教师 表中每名教师的

姓名、性别、工作时间和系别。利用查询这一功能,可以通过选择一个表中的不同字段生成所需

的多个表。

2. 选择记录

根据指定的条件查所需的记录,并显示到的记录。如建立一个查询,只显示 教师

1992 年参加工作的男教师。

3. 编辑记录

编辑记录主要包括添加记录、修改记录和删除记录等。在 Access 中,可以利用查询添加、

修改和删除表中的记录。如将 计算机实用软件 不及格的学生从 学生 表中删除。

4. 实现计算

查询不仅可以到满足条件的记录,而且还可以在建立查询的过程中进行各种统计计算,

如计算机每门课程的平均成绩。另外还可以建立一个计算字段,利用计算字段保存计算的结果。

5. 建立新表

利用查询得到的结果可以建立一个新表。如将 计算机实用软件 成绩在 90 分以上的学

生出来并存放在一个新表中。

6. 建立基于查询的报表和窗体

为了从一个或多个表中选择合适的数据显示在报表或窗体中,用户可以先建立一个查询,

然后将查询的结果作为报表或窗体的数据源。每次打印报表或窗体时,该查询就从它的基表中检

索出符合条件的最新记录。这样也提高了报表或窗体的使用效果。

3.1.2 查询的类型

1.选择查询

选择查询是最常见的查询类型,它根据指定的查询准则从一个或多个表中检索数据。也可以

使用选择查询来对记录进行分组,并且对记录作总计、计数、平均值以及其他类型的总和的计算。

2.交叉表查询

交叉表查询显示来源于表中某个字段的总结值(合计、计数以及平均),并将它们分组,一

组列在数据表的左侧,一组列在数据表的上部,在数据表行与列的交叉处显示表中某字段统计值。

3.参数查询

参数查询是一种利用对话框来提示用户输入准则的查询。

4.操作查询

操作查询与选择查询类似,都是有用户指定查询记录的条件,但选择查询是检查符合特定条

件的一组记录,而操作查询是在一次查询操作中对所得结果进行编辑等操作。操作查询共有四种

类型:删除、更新、追加与生成表。

删除查询: 从一个或多个表中删除一组记录。

更新查询: 对一个或多个表中的一组记录作全局的更改。

追加查询: 从一个或多个表将一组记录追加到一个或多个表的尾部。

生成表查询:生成表查询是利用一个或多个表中的全部或部分数据新建表。

5SQL 查询

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 的条件应写在设

计视图中( )行。

. 总计 . 字段 . 准则 . 显示

5 .筛选图书编号是 "01" "02" 的记录,可以在准则中输入 ___________ 。(多选)

. "01" or "02" . not in ("01" , "02")

. in ("01" , "02") . not ("01" and "02")

6 .查看工资表中长安商品公司实发工资为 2000 元以上(除 2000 元)人员的记录 ,

表达式为 _________ ( 多选 )

. 部门 =" 长安商品公司 " AD 实发工资 >2000

. 部门 =" 长安商品公司 " AD 实发工资 >=2000

. 部门 = 长安商品公司 AD 实发工资 >=2000

. 实发工资 >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 元)以下

的人员记录 , 表达式为 ______

. 实发工资 >2000 OR 实发工资 <4000

. 实发工资 >2000 AD 实发工资 <4000

. 实发工资 >=2000 AD 实发工资 =<4000

. 实发工资 (Between 2000 and 4000)

填空题

1.选择查询

2.联合查询、传递查询、数据定义查询和子查询

35

4.“在设计视图中创建查询”

5.“准则”

6Between #1998-1-1# and #1998-12-31#

7Group 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 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26