书城计算机网络办公软件高级应用
18673900000034

第34章 数据库应用(3)

点击菜单或工具栏中的“关系”,将“显示表”中的3个表通过双击添加到关系窗口中;再用鼠标拖动“学生”表中的“学号”字段放到“成绩”表中的“学号”字段上,系统会跳出“编辑关系”的界面,点击“联接类型”,按提示选择相应的项目即可。用同样的方法建立“课程”表与“成绩”表的关联。

7.4建立查询

建立查询,可以从数据库中提取出所需的数据,并进行检索、组合、重用和分析数据。

查询可以从一个或多个表中检索数据,也可以使用一个或多个查询作为其他查询或是窗体、报表和数据访问页的数据源。查询所返回的数据称为记录集。一旦建立了查询,无论何时运行查询,都会检索到数据库中的最新数据。

7.4.1用向导创建简单查询

通过向导创建查询的方法非常简单,只要在数据库窗口中点击“查询”,双击“使用向导创建查询”,在向导操作对话框中选择数据源(一个或多个表或查询)以及所关注的字段,依照引导界面就可以方便地完成创建工作。

“学生”表为数据源,选择其中有关通讯联系的字段组成的“学生联系方式一览表”的查询创建界面。

以“学生”表为数据源,由若干字段组成“学生联系方式一览表”的查询创建界面,从三个数据表中提取相应的字段重新组合的记录集“成绩查询1”,并按“学号”和“课程号”排序。

7.4.2在设计视图中创建查询

通过向导创建的查询,虽然简单快捷,但实现的效果也简单,完成的功能有限,有些个性化的信息查询还是需要自己来设计。

前面的“成绩查询1”和“学生分类成绩统计查询”,也可以通过“在设计视图中创建查询”完成或者进行修改。在这里创建各类查询会更灵活,更容易贴合应用的需求。

将“显示表”中的表或查询(数据源)添加到“查询1”窗口中;再将需要的字段拖放到对应的网格中;然后设置用来检索数据的排序方式、统计或条件等;最后保存即完成了创建查询的工作。

7.4.3创建参数匹配信息查询

在“学籍信息管理系统”的数据库应用示例中除了对指定数据源的固定字段的查询之外,还需要对从键盘输入的参数进行匹配信息查询。如:“按输入学号(可匹配)查询成绩”、“按输入姓名(可匹配)查询成绩”、“按输入课程名(可匹配)查询成绩”、“按输入课程号(可匹配)查询成绩”、“按课程和分数查询成绩”以及“按输入分数档查询成绩”等,这些查询的数据源都是前面创建的“成绩查询1”,而要求的查询结果却各不相同。

实现这类参数匹配信息查询并不复杂,只要在查询设计视图的网格中填写相应的参数信息匹配条件表达式即可,而运行时系统会跳出一个对话框来提示用户输入定义为参数的字段值或变量值,需要注意的是输入的参数值应该与匹配的字段或其所处的表达式在数据类型上保持一致。这其中需要了解一些表达式构成规则和数据描述方面的基础知识。

是分别“按输入姓名(可匹配)查询成绩”、“按课程和分数查询成绩”以及“按输入分数档查询成绩”进行参数匹配信息查询的设计界面。

一个表达式可以由数值计算或字符串组成,也可以包含列名、文字、运算符及函数的任何组合。罗列了Microsoft Access 常用的运算符和函数的用法和意义。

7.5结构化查询语言SQL

7.5.1SQL概述

结构化查询语言(Structured Query Language,SQL)是基于关系数据库的数据库查询语言,也是数据库信息处理的国际标准化语言。

利用SQL语言我们不需要写出应该如何做某件事情,而只需写出要做什么就可以了。SQL语言具有定义、插入、修改、删除和查询等多项功能,使用简单、功能强大,实现数据库系统应用的各种程序设计语言基本上都支持SQL语言。

SQL结构化查询语言具有以下常用语句:

(1)创建表语句:CREATE TABLE‐SQL;

(2)修改表语句:ALTER TABLE‐SQL;

(3)删除信息语句:DELETE‐SQL;

(4)插入信息语句:INSERT‐SQL;

(5)修改信息语句:UPDATE‐SQL;

(6)查询信息语句:SELECT‐SQL。

当设计完数据库之后,多数应用程序都是利用SQL语言来访问存储在数据库中的所需信息。从简单表的分类类型到从多个表中挑选拥有同一个特征条件的记录子集,SQL语言被认为是完成数据库信息操作的一个功能强大的实用工具。

SELECT‐SQL语句完成的功能示意图在SQL语言的诸多语句中,使用最频繁且应用最广泛的是SELECT‐SQL查询语句。

一个查询指的是从一个或多个数据库中提取信息的一种方法,特别是要依照一定的顺序或符合一定的标准,SELECT‐SQL语句是这种规则和标准的具体体现。

或许,将SQL语言理解为子语言更为合适,因为SQL没有任何屏幕处理或用户输入输出的能力,一般需要嵌入到其他的宿主语言(如Visual Basic、Visual C、Delphi 等)中调用,它的主要目的在于提供访问数据库的标准方法,而不管数据库应用的其余部分是用什么语言编写的,它既是为数据库信息的交互式查询而设计的(动态SQL),也可以在过程化语言编写的数据库应用程序中使用(嵌入SQL)。

添加到应用程序中的查询,可以对数据源进行各种组合,并有效地筛选记录、管理数据并对结果排序。所有这些工作都是用SELECT‐SQL语句完成的。通过使用SELECT ‐SQL语句,我们可以完全控制查询结果以及结果的存放位置。事实上,前面通过向导或设计视图建立的所有查询对象,都可以转换为使用SELECT‐SQL语句来完成和实现,而且使用SELECT‐SQL语句来完成各类查询会更简单、快捷。

7.5.2SELECT 数据查询语句

利用SELECT 语句可以实现多种查询功能,该语句的格式选项很多,但本节重点只介绍其中最常用的部分,其余选项读者可参考其他相关资料。

1.SELECT 语句格式

SELECT 语句的完整格式比较冗长,在此,我们仅仅给出SELECT 语句的最常用格式。

SELECT<待选字段表>FROM<数据表>[WHERE<选取条件>][ORDER BY<排序字段名表>]常用格式给出了SELECT语句的主要选项框架,其中:

待选字段表:是语句中所要查询的数据表字段表达式的列表,多个字段表达式必须用逗号隔开。如果在多个表中提取字段,最好在字段前面冠以该字段所属的表名作前缀,如:学生.姓名,成绩.学号。

数据表:是语句中查询所涉及的数据表列,多个表必须用逗号隔开。

选取条件:是语句的查询条件(逻辑表达式),如果是从单一表对象中提取数据,此查询条件表示筛选记录的条件;如果是从多个表对象中提取数据,那么此查询条件除了筛选记录的条件外,还应该加上多个表对象的连接条件。

排序字段名表:该语句中有此项,则对查询结果进行排序。ASC表示按字段升序排序,DESC表示按字段降序排序。缺省该选项,则按各记录在数据表中原先的先后次序排列。

2.SELECT 语句查询示例

前面提到将SQL语言理解为子语言更为合适,因为SQL没有任何屏幕处理或用户输入输出的能力,一般需要嵌入到其他的宿主语言(如Visual Basic、Visual C、Delphi 等)中调用,所以为了学习和测试SELECT 语句的功能,可以直接在Access 的查询设计视图中的“SQL视图”窗口中进行。

(1)查询单表所有字段内容。

例如,选择数据库学籍管理的学生表中所有记录的所有字段(“*”表示所有的字段全部选取)。

Select *From 学生

(2)查询单表部分字段内容。

例如,将“学生”表中所有记录的字段名“学号”、“姓名”、“性别”和“奖学金”改名为“学生编号”、“姓名”、“男生女生”和“所获奖学金”显示出来。

Select 学号As 学生编号,姓名As 学生姓名,IIF(性别,"男","女")As 男生女生,奖学金As 所获奖学金From 学生。

说明:关键字As 后面就是重新命名的字段标题,用来代替原表中的字段名。

(3)查询单表满足条件内容。

例如,选择“成绩”表中所有分数小于60的学号。

Select distinct 学号From成绩where分数<60。

说明:使用关键字distinct是因为假如用Select学号From成绩,则如果某个学生有多门课程不及格,则该学生的学号会显示多次,在本例中只需显示一次即可。关键字distinct可以将重复记录去掉。

例如,找出“070211”班所有学生奖学金的最高值、最低值和平均值。