Access数据库 如何创建查询

【Access数据库 如何创建查询】分享给互联网技能从业者学习和参考。

Access为我们提供了几种不同类型的查询,主要分为两大类:选择查询和操作查询

 

选择查询

点击"创建"选项卡的查询设计:

 

 

关闭单击右键"SQL视图"

 

 

写查询语句

 

Select:是查询的意思;

班级,avg(英语分数),avg(语文分数):这三个就是我们要的结果,avg是英文平均的缩写

From学生成绩表4:这里是从"学生成绩表4"里面查

group by 班级:group by是分组的意思,就是按哪个字段进行分类

运行

那个红色的"叹号"就是运行

 

出现下面这个统计结果,第一列是英语平均分,第二列是语文平均分,一目了然:

 

可以为每个字段加一个别名,As后面接的是一个别名,也可以看作是一个代号,这个别名是为了让我们能够识别"avg(英语分数)"和 "avg(语文分数)"的

 

查询结果有变化

 

可以保存这个查询

 

常用的选择查询可以归纳以下几种类型

第一种查询语句:Select * from 学生成绩表4

它的意义就是查询"学生成绩表4"中所有的数据,下图便是:

 

运行之后,就出现下图这样的结果,和"学生成绩表4"中的数据一模一样。

 

第二种查询语句:Select * from 学生成绩表4 where 英语分数>=60

较之前多了where 英语分数>=60,就是表示加了条件限制,只查询英语成绩及格的数据,where后面接的就是限定条件。

 

运行之后,就出现下图这样的结果,显示的只是英语成绩及格的人员,不及格的不显示。

 

第三种查询语句:Select 班级,avg(英语分数) from 学生成绩表4 where 英语分数>=60 group by 班级

较之前多了"group by 班级",而且把"*"改成了"班级,avg(英语分数)",就是表示对不同班级进行分组查询,而且只查询及格人员的平均成绩,也就是中上等学生之间的比较,把不及格人员排除在外了。

 

运行后,是下图这样的结果,显示了不同班级英语成绩及格学生的平均分数。可以看到二班及格学生的英语平均成绩最高,可以断定,二班中上等生的英语成绩要普遍高于其它班级的中上等生。

 

在简单查询的基础上还可以进行多表查询和嵌套查询

多表查询:

下面这个数据库有两个成绩单,一个是期中考试,一个是期末考试,要看一看学生成绩有没有进步

 

创建一个查询,并写上下面的查询语句:

 

SELECT:后面接的就是我们想要的信息,如学号,姓名,期中英语分,期末英语分;

FROM:后面接的就是涉及的表名,这里面我们就涉及两个表,一个是"期中考试",一个是"期末考试";

WHERE:后面接的就是限定条件,因为我们查的是两个表,而这两个表必须有一个纽带能够联系到一起,而这个纽带就是学生的学号,因为每个学生的学号是唯一的,并没有重复,所以,我们查询两个表的时候必须找到一个纽带,这个纽带不能重复,否则我们无法准确的区分学生的成绩。

运行之后,得到下面的结果:

 

可以看到,赵风车的成绩下降的最快,期中考了70分,而期末考了35分,其他人的成绩有上升较快的,刘玲的成绩由30分上升到76分,这样每个学生的成绩就一目了然了,无论涉及几个表,只要找到这几个表共有的纽带,就可以查询每个表相对应的信息了。

嵌套查询:

先来看一下下面这个简单的查询:

 

运行结果是:

 

下面这个就是嵌套查询了:要看一下哪个班级英语平均分和语文平均分都及格了?

 

运行结果是这样的:

 

可以看到只显示两门成绩都及格的班级。

操作查询

1、更新表查询

增加一个字段(用于存放修改后的分数)

打开学生成绩表,会看到左上角有一个"视图",它就是设计视图

 

点击之后:

 

在下面空白的格子上去加一个字段 "英语分数2",数据类型选"数字",字段大小选"单精度型":

 

继续点左上角的"视图":

 

这个表多了一个字段 "英语分数2",创建一个查询,写上语句:

update 学生成绩表

set 英语分数2=英语分数+5

where 英语分数<60

 

Update后接要修改的表名,set是设置,后接要修改的内容,这里面"="不是等于,而是赋值,就是把"英语分数+5"赋给"英语分数2"字段,where后面接的还是条件。

运行之后:

 

下面是涉及两个表的"更新查询"

有两个表,一个表是基础信息表,一个是学生成绩表。

学生成绩表中的数据只有学号和分数:

 

基础信息表中有学号和姓名:

 

想要把姓名放到学生成绩当中:

在学生成绩表中增加一个姓名字段:

打开"学生成绩表",点击左上角的视图,然后在空白处加一个"姓名"字段,数据类型选"文本型"。

 

点击左上角的"视图"

 

创建一个查询并写上语句:

点击"创建"下的"查询设计",点击右键"SQL视图",就可以写语句了:

update 学生成绩表 a,基础信息 b

set a.姓名=b.姓名

where a.学号=b.学号

 

Update后面仍然接涉及到的表名,set后接的就是要做的内容,将b表中的内容赋值到a表中,where是条件,当学号相等的时候去做这件事。

运行结果:

 

2、生成表查询

"生成表查询"也是操作查询的一种,平时工作中也比较常用,从字面理解就是生成一个新的数据表。

下面是学生成绩表4,里面有3科的成绩,我们只想要数学的成绩,并且生成一个新的"数学成绩表":

 

直接创建一个查询,并写上语句:

Select 学号, 数学分数 into 数学成绩表 from 学生成绩表4

Select:后接要查询的字段(学号和 数学分数)

Into: 后接新生成的表名(数学成绩表)

From: 后接从哪个表进行提取数据(学生成绩表4)

 

运行后,在左侧空格出现了一个新生成的表,这个表就是"数学成绩表":

 

3、追加查询

就是向已有的表中追加数据,下面是一班成绩单,把二班的成绩单也追加到这个表中:

 

创建一个查询,并写上语句:

"Insert into 一班成绩 select * from 二班成绩"

Insert into:表示插入到,后接表名(要将数据插入到哪个表)

Select *: 表示插入哪些字段("*"代表全部字段)

From: 后接从哪个表进行提取数据(二班成绩)

 

运行后,在一班的成绩单里面多出来了二班的成绩:

 

4、删除查询

"删除查询"就是从一个表中删除数据。

下面是一班成绩单,里面混有二班的成绩,把二班的全部信息删除:

 

我们直接创建一个查询,并写上语句:

"delete * from 一班成绩 where 班级 = '二班'"

delete:表示删除记录数据(所有记录)

from: 表示从哪个表删除(一班成绩)

where:删除符合什么条件的数据(班级 = '二班')

 

运行后,在一班的成绩单里面二班的所有数据被删除了:

Access数据库 如何创建查询