数据库的查询方式研究

时间:2022-10-19 10:55:41

数据库的查询方式研究

摘要:Access是一种非常实用的数据库管理系统软件。该文通过介绍在Access几种查询的方法,展示了Access各种查询在解决实际问题中的强大功能。

关键词:数据库;查询;SQL

中图分类号:TP311 文献标识码:A文章编号:1009-3044(2010)03-513-03

The Study of Database Query Method

GAO Hong-yan

(Dept. Phys. & Inform. Tech. Baoji Univ. Arts & Sci., Baoji 721007, China)

Abstract: The Access is a very useful database management system software. The several query method are introduced in this text. The kinds of Access query have a strong function in solving practical problems.

Key words: database; query; SQL

查询是对数据源进行一系列检索操作,它可以从表中按照一定的规则取出特定的信息,在取出数据的同时可以对数据进行一定的统计、分析和计算,然后按照用户的要求对数据进行排序并显示结果。查询的结果可以作为窗体、报表和新数据表的数据来源,当然也可以在此基础上再设置条件进行查询。查询为用户使用数据库提供了极大的方便。通过查询不仅可以检索数据库中的信息,还可以利用查询编辑数据库中的数据,而这种编辑一次就可以更改整个数据库中的相关数据,因此可以通过查询来实时更新数据源。

1 选择查询

选择查询是最常见的一种查询类型,它使用指定的条件从一个或多个表中检索数据,然后按照所需顺序显示数据,并且在可以更新记录(采用某些限制条件)的数据表中显示结果。也可以使用选择查询来对记录进行分组,计算总和、计数、平均值以及其他类型的总和。创建查询的方法有两种,利用向导和利用查询视图。

1.1 利用向导创建选择查询

1) 打开已有的数据库。

2) 在数据库窗口中,单击“对象”列表中的“查询”项,然后单击“数据库”窗口工具栏上的“新建”按钮。在“新建查询”对话框的列表中选择“简单查询向导”,然后单击“确定”按钮,参见图1。

3) 进入“简单查询向导”后,在“表/查询”下拉列表中选择要查询的表。从“可用字段”列表中选定要查询的字段,然后通过“添加”按钮,将它们依次移入“选定字段”列表中,参见图2。然后单击“完成”,这样一个新的选择查询就建立成功了。

1.2 使用设计视图创建选择查询

1) 在数据库窗的 “对象”栏中选择“查询”项,然后单击“数据库”窗口工具栏上的“新建”按钮。在“新建查询”对话框的列表中选择“设计视图”,然后单击“确定”按钮。

2) 进入“显示表”对话框后,单击要添加的表,然后单击“添加”按钮,或者直接双击要添加的表名称,也可以添加查询,添加所需的表或者查询后,单击“关闭”,此时在设计视图窗口中显示出添加的表。参见图3。

3) 可以从添加的表或查询中,直接将字段拖到字段行中的单元格或者单击字段行中的单元格,这是出现一个小三角按钮,单击小三角选择所需的字段。参见图4。保存此查询,输入名称,然后单击工具栏上的“运行”按钮即可查看查询的结果。一个新的查询就建立成功了。

2 交叉查询

使用交叉查询可以计算并重新组织数据的结构,这样可以更加方便的分析数据。交叉查询计算数据的总计、平均值、计数或其他数据的总和,这种数据可以分为两组信息:一类在数据表左侧排列,另一类在数据表的顶端。数据表行和列的交叉处显示该字段的计算结果。

利用交叉查询提供的功能可以把用户的信息集中起来,并使用这些信息生成图表,这样可以更清楚地了解信息。建立交叉查询的方法同样有两种:一是使用交叉表查询向导,二是使用设计视图。

2.1 使用“交叉表查询向导”建立查询

1) 在“新建查询”对话框中,单击“交叉表查询向导”,然后单击“确定”。

2) 选择作为“交叉表查询”的数据来源。从“可用字段”列表中选择作为行标题的字段,最多可选三个字段。按“下一步”按钮。

3) 从“可用字段”列表中选择作为列标题的字段。本例中,选择“课程号”。一旦选定了它,即出现在下方的交叉表预览窗口中,也被自动分配一个编号,由此所选定的字段将显示在交叉表的顶端。按“下一步”按钮。

4) 从“字段”列表中选择交叉表中交叉单元格所要显示的字段,然后还可在“字段”列表右侧“函数”列表中选择计算方式。

5) 在最后一个对话框中,输入新查询的名称后,可以选择是“查看查询”,还是在“设计视图”中“修改设计”。如果生成的查询不完全符合要求,可以返回向导或在“设计视图”中更改查询。

2.2 使用“设计视图”建立查询

1) 在“新建查询”对话框中,单击“设计视图”,然后单击“确定”。

2) 在“显示表”对话框中,单击列出了所需的表或查询数据的选项卡。双击要添加到查询的每个对象的名字,然后单击“关闭”。

3) 在设计网格中将字段添加到“ 字段”行。执行“查询/ 交叉表查询”命令,或按下工具栏上“查询类型”按钮,选择“交叉表查询”命令,查询“设计视图”窗口的下半部将多出“总计”及“交叉表”两行。

4) 如果要将字段的值按行显示,请单击“交叉表”行,然后单击“行标题”。可指定一个或多个行标题选项,但至少要有一项作为分组依据,即在该字段的“总计”行保留默认的GroupBy。如果要将字段的值显示为列标题,请单击“交叉表”行,然后单击“列标题”。只能选择一个字段作为“列标题”,且必须为这个字段的“总计”行保留默认的 Group By。

5) 对于要将其值用于交叉表的字段,请单击“交叉表”行,然后单击“值”。只有一个字段可以设置为“值”。在这个字段的“总计”行,单击希望用于交叉表的聚合函数类型(例如Sum、Avg 或Count),按下工具栏上“视图”按钮查看分析的结果。

3 参数查询

利用参数的定义,用户可以在同一个查询中,输入不同的参数而查看不同的结果。最常见的情况是显示一个对话框,要求用户输入参数,系统根据所输入的参数,找出符合条件的记录。创建步骤如下

1) 打开参数查询的设计视图。

2) 在“条件”行中要创建参数查询字段单元格中输入表达式,如要查找“成绩”的记录,则在“成绩”字段的条件单元格中输入:< [输入成绩数]。

3) 单击主窗口工具栏上的“运行”按钮,则会打开如图5的对话框,输入“60”,按“确定”,则会显示所有学生不及格的课程信息,参见图6。

4 操作查询

操作查询是这样一种查询,使用这种查询只需要进行一次操作就可以对许多记录更改和移动。它包括4种查询:1) 删除查询:可以从一个或多个表中删除一组记录。使用删除查询,通常会删除整个记录,而不只是记录中所选字段;2) 更新查询:可以对一个或多个表中的一组记录作全局更新。使用更新查询,可以更新表中的已有数据记录;3) 追加查询:将一个或多个表中的一组记录添加到一个或多个表的末尾;4) 生成表查询:可以根据一个或多个表全部或部分数据新建表。生成查询有助于创建表以导出到其他Microsoft Access数据库或包含所有旧记录的历史表。

5 SQL查询

SQL查询即用户使用SQL语句创建的查询,所有的查询都可以看作是SQL查询,其背后都隐含着SQL 窗口。实际上,Access 2003的各种查询都可以通过SQL语句来实现。

5.1 选择查询用SQL实现

SELECT学号,课程名

FROM 选课

5.2 交叉查询

TRANSFORM Count(选课.学号) AS 学号之计数

SELECT 选课.课程名, Count(选课.学号) AS [总计 学号]

FROM 选课

GROUP BY 选课.课程名

PIVOT 选课.成绩;

5.3 参数查询

SELECT 学生.姓名, 课程.课程名称, 选课.成绩

FROM 学生, 课程, 选课

WHERE 学生.学号=选课.学号 AND

选课.课程号=课程.课程号 AND

成绩

5.4 操作查询

1) 删除查询

DELETE

FROM 选课

WHERE 课程名=’网络’ ;

2) 更新查询

UPDATE 选课

SET 课程名=’网络工程’

WHERE 课程名=’网络’ ;

3) 追加查询

CREATE TABLE 课程平均成绩

(课程号 CHAR(15)平均分SMALLINT);

INSERT

INTO 课程平均成绩(课程号, 平均分)

SELECT 选课.课程号, AVG(成绩)

FROM 课程, 选课

WHERE 选课.课程号=课程.课程号

GROUP BY 选课.课程号;

4) 生成表查询

SELECT 学生.姓名, 课程.课程名称, 选课.成绩

INTO 123

FROM 课程

INNER JOIN (选课 INNER JOIN 学生 ON 选课.学号 = 学生.学号) ON 课程.课程号 = 选课.课程号

ORDER BY 学生.姓名。

参考文献:

[1] 萨师煊,王珊.数据库系统概论[M].4版.北京:高等教育出版社,2004.

[2] 梁灿,赵艳铎.Access数据库应用基础教程[M].北京:清华大学出版社,2005.

[3] 章立民.Access 2003――用150个范例学查询[M].北京:电子工业出版社,2006.

[4] 许新华,唐胜群,宋振云,等.并行数据库查询优化技术的最新进展[J].计算机工程与设计,2009,30(16):3814-3819.

[5] 魏玲玲,姚磊岳,王荣福,等.粗关系数据库查询模型[J].计算机工程,2009,35(16):51-53.

上一篇:全过程质量管理下提高本科毕业设计质量的思考 下一篇:基于GWT的Web2.0开发