access数据查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3部分数据查询
要点:
●建立普通查询
●修改查询
●运行查询
●建立汇总查询
●建立参数查询
●建立动作查询
●SQL查询
五种基本类型:选择查询、交叉表查询、动作查询、SQL查询和参数查询动作查询包括:生成表查询、更新查询、追加查询、删除查询
SQL查询包括:联合查询、传递查询、数据定义查询、子查询。
两种建立查询的方法:使用向导建立查询
利用设计视图建立查询
一、建立普通查询
1.使用“简单查询向导”创建单表选择查询
单表查询:只检索一个表中的数据
多表查询:检索多个表中的数据
(1)打开数据库文件。
(2)单击“对象”组中的“查询”按钮。
(3)双击“使用向导创建查询”选项(打开“简单查询向导(1)”对话框)
(4)单击“表/查询”下拉按钮——选择用来建立查询的表——在“可用字段”列表框中选择要用到的查询字段——单击“单个添加”按钮将其添加
到“选定的字段”列表框中(如果单击“全部添加”按钮,则将所有字段添加到“选定的字段”列表框中)。
(5)单击“下一步”按钮(打开“简单查询向导(2)”对话框)。
(6)单击“下一步”按钮(打开“简单查询向导(3)”对话框)。
如果用户选择“汇总”单选按钮,再单击“汇总选项”按钮,可选择需要计算的汇总值,例如总和、平均值、最大值、最小值等。
(7)指定查询标题,然后单击“完成”按钮。
2.使用“简单查询向导”创建多表选择查询
(1)打开数据库文件。
(2)单击“对象”组中的“查询”按钮(打开“简单查询向导(1)”对话框)。
(3)双击“使用向导创建查询”选项(打开“简单查询向导(2)”对话框)。
(4)单击“表/查询”下拉按钮——选择用来建立查询的表——在“可用字段”列表框中选择要用到的查询字段——单击“单个添加”按钮将其添加到“选定的字段”列表框中(如果单击“全部添加”按钮,则将所有字段添加到“选定的字段”列表框)中。
(5)再次单击“表/查询”下拉按钮,选择其他的表或查询,并按照上述方法将所需字段添加到“选定的字段”列表框中。
(6)单击“下一步”按钮(打开“简单查询向导(3)”对话框)。
若未建立表间的关系,将提示用户先建立表间的关系,再建立多表查询。
(7)选择所需选项,然后单击“下一步”按钮(打开“简单查询向导(4)”对话框)。
(8)指定查询标题,然后单击“完成”按钮。
3.使用“交叉表查询向导”建立交叉表查询
交叉表查询把来源于某个表或查询的字段分组,其中,一组列在数据表的左侧,一组列在数据表的上部,在行与列的交叉处显示对表中某个字段进行计算所得值。
(1)打开数据库窗口——选择“查询”组对象——单击“新建”按钮
或者单击工具栏上的“新对象”下拉按钮——单击“查询”选项(打开“新建查询”的对话框)。
(2)选择“交叉表查询向导”选项——单击“确定”按钮(打开“交叉表查询向导(1)”对话框)。
(3)选择用来建立交叉表查询的表——单击“下一步”按钮(打开“交叉表查询向导(2)”对话框)。
(4)选择作为行标题的字段——单击“单个添加”按钮,将所需字段添加到“选定字段”列表框中。
注意:“可用字段”列表中必须留有两个字段。
(5)单击“下一步”按钮(打开“交叉表查询向导(3)”对话框)。
(6)选择作为列标题的字段——单击“下一步”按钮(打开“交叉表查询向导(4)”对话框)。
(7)指定某一字段作为交叉值,在函数列表框中选择某一项目,然后单击“下一步”按钮(打开“交叉表查询向导(5)”对话框)。
(8)输入查询名称——单击“完成”按钮。
例:建立了以学生编号为行标题,课程名称为列标题,平均成绩为值的交叉表查询。
4.在设计视图中创建查询
想自行设计建立查询所需的字段,必须使用设计视图中创建查询。
(1)单击数据库中的“查询”按钮(打开查询列表)。
(2)双击“在设计视图中创建查询”选项(打开“查询设计窗口”和“显示表”对话框)。
(3)选择在查询中要使用的表并将其添加到“查询窗口”中。
(在“显示表”对话框中显示了数据库的全部表和查询,首先选择要使用的表,然后单击“添加”按钮,或者直接双击要使用的表)
注意:在“显示表”对话框中,有3个选项卡。
当选择“查询”选项卡时,在该列表框中会显示全部的查询;当选中“两者都有”选项卡时,在该列表中显示全部的表和查询。
Access允许用户从表中及已经存在的查询中选择建立查询的对象。
(4)单击“关闭”按钮(关闭“显示表”对话框)。
用户可在任何时候打开“显示表”对话框,只需单击工具栏上的“显示表”按钮,即可继续选择表添加到“查询窗口”中;当想从查询窗口删除表时,可单击“查询窗口”中的表名,然后按Delete键即可。
“查询设计窗口”分为两部分,上半部分用于显示查询要使用的表或查询,称为表/查询输入窗口;下半部分用于描述动态集所拥有的数据列和查询条件等,称为范例查询设计窗口。
在范例查询设计网格中各选项的作用如下:
字段设置字段名或字段表达式,用于限定查询的作用字段。
表选择在查询中要使用的表。
排序指定有关字段是否排序。
显示确定有关字段是否在数据表中显示。
它以复选框形式出现,当复选框被选中时,相关字段显示在数据表中,否则,该字段不显示在数据表中。
准则输入查询限制条件。
或用来输入逻辑“或”限制条件。
(5)选择在查询中要使用的字段(在上方的表/查询窗口中双击表中的字段,该字段将自动添加到下方的范例查询设计窗口)。
注意:通过按住Shift键或Ctrl键,可在表中选择多个字段进行添加。
如果要将表中的全部字段添加到下方的范例查询设计窗口,先双击表的标题栏,单击任一字段并按住鼠标左键不放再进行拖放即可。
(6)单击工具栏上的“保存”按钮(打开“另存为”对话框)。
(7)输入查询名称(查询名称不能与数据库中的表名相同)——单击“确定”按钮。
(8)运行刚才所创建的查询:在数据库窗口中双击查询名称。
二、修改查询
打开查询设计窗口(如果正处于查询的数据表窗口内,可单击工具栏上的“视图”按钮;如果在数据库窗口,单击“查询”对象,选择要修改的查询,然后单击数据库窗口中的“设计”按钮)。
1.设置字段属性
(1)单击范例查询设计窗口中的字段文本框,将光标定位在该文本框中。
(2)单击工具栏上的“属性”按钮,打开“字段属性”对话框。
(3)重新定义字段的属性,然后单击窗口右上角的“关闭”按钮。
2.删除字段
(1)打开查询设计窗口。
(2)在范例查询设计窗口选择要删除的字段。
(3)按Delete键。
3.添加字段
(1)打开查询设计窗口。
(2)在上方的“表/查询“窗口选择要插入的字段,然后将其拖动到范例查询设计窗口指定的列上即可。
(如果双击查询窗口的某一字段,那么该字段将被添加到范例查询设计窗口最末尾的第一个空列中。
)
4.改变字段顺序
(1)将鼠标指针移到字段上方的字段选择器上(指针会变为一个下箭头)。
(2)单击鼠标左键选择该列。
如果要选择多列,则按住鼠标左键不放并拖动选择其他的列。
(3)在字段选择器位置按住鼠标左键不放,此时鼠标指针会变为一个上箭头将其拖到需要的位置再松开鼠标左键。
5.重命名字段
(1)打开查询设计窗口。
(2)单击范例查询设计窗口中要重新命名的字段的最左边,将光标定位在该位置上。
(3)键入新的字段名,然后在新的字段名与原字段名之间键入一个冒号。
三、运行查询
·在查询设计窗口中单击工具栏上的“执行”按钮,运行该设计窗口的查,并在数据表视图中生成动态集。
·在查询设计窗口中单击工具栏上的“视图”按钮,打开数据表视图并显示该设计窗口的查询结果(该方法仅适用于选择查询)。
·在数据库窗口中,选择要运行的查询,然后单击“打开”按钮,运行询,并在数据表视图中显示动态集。
·在数据库窗口中,指向双击要运行的查询。
四、建立汇总查询
1.什么是汇总查询
建立汇总查询应在查询设计窗口中单击工具栏上的“合计”按钮,或者从“视图”菜单中执行“合计”命令,在范例查询设计窗口增加“总计”行。
“总计”行用于在一个或多个表中对记录或记录组执行汇总计算时设置选项。
要进行汇总查询,就必须为查询中使用的每个字段从“总计”行的下拉列表中选择一个选项。
总计方法共有12个选项可供选择。
可以用下拉列表框右边的滚动条查看其余的选项。
这12个选项分别是:
Group By(分组):可以指定范例查询设计窗口中某个字段为分组字段。
Group By 是总计行的默认选项。
当把某个字段拖动放置到范例查询设计窗口中时,自动选择这个选项。
Sum(求和):为每一组中的指定字段进行求和运算。
Avg(求平均值):为每一组中的指定字段进行求平均值运算。
Min(求最小值):为每一组中的指定字段进行求最小值运算。
Max(求最大值):为每一组中的指定字段进行求最大值运算。
Count(计数):根据指定字段求每一组中的记录个数。
StDec(统计标准差):计算每一组中某字段所有值的统计标准差。
如果该组只包括1个记录行,返回Null值。
Var(统计方差):计算每一组中某字段所有值的统计方差。
如果该组只包括1个记录行,返回Null值。
First(求第一个值):在指定字段求每一组中第一个记录该字段的值。
Last(求最后一个值):在指定字段求每一组中最后一个记录该字段的值。
Expression(表达式):在范例查询设计窗口的字段行中建立计算字段。
Where(条件):限定表中的哪些记录可以参加分组汇总。
上述12个选项中,Sum、Avg、Max、Min、StDev及Var只能用于“数字”、“备注”、“日期/时间”、“自动编号”及“是/否”数据类型的字段,其它选项能用于任何类型的字段。
2.对所有记录执行汇总
按单个字段进行分组汇总
(1)打开“显示表和查询设计窗口”,并将执行汇总的表添加到“查询设计窗口”中。
(2)单击工具栏上的“合计”按钮,在下方的窗口中添加“总计”行。
(3)双击该表中的某一字段,将其添加到下方窗口中。
(4)双击该表中的需汇总的字段,并在该字段的“总计”行中选择某一选项(如:Sum求和)。
(5)重复第4步,但“总计”行中的选项应是不相同的。
(6)单击工具栏上的“执行”按钮。
例:根据学号进行分组,求出每个学生所有功课的总分、平均分、最高分及最低分。
按多个字段进行分组汇总的操作步骤如下:
(1)打开“显示表和查询设计窗口”,并将需汇总的表添加到“查询设计窗口”中。
(2)关闭“显示表窗口”。
(3)单击工具栏上的“合计”按钮,在下方的窗口中添加“总计”行。
(4)分别双击该表中的进入汇总查询的各字段,将其添加到下方窗口中。
(5)在分组依据字段的“总计”行中选择Group By(分组)选项。
(6)在汇总字段的“总计”行中选择某一选项。
(7)单击工具栏上的“执行”按钮。
例:根据学生编号进行分组,然后再根据课程名称进行分组并求出每个学生各门功课的汇总统计值。
3.选择记录执行汇总
选择符合条件的记录进行分组汇总。
其条件应输入到“准则”行以及“或”行中。
1)为Group By字段设置条件
为了限制用于分组的记录的范围,可在Group By这字段中指定条件。
例如,只想汇总每位学生选择的课程为计算机、语文这2门课的总成绩,就要对课程名称的“准则”行输入条件:“计算机”;“或”行输入“语文”。
2)为汇总字段设置条件
需要对记录首先进行汇总,然后筛选出符合条件的汇总记录。
例如,要筛选出平均成绩大于85分的优秀学生,就要对“成绩”字段的Avg行输入条件:“准则”行输入 > 85。
3)在“总计”行设置where选项
在Group By字段或者在汇总字段中设置条件,限制了在动态集中出现的记录数。
而在查询设计窗口的“总计”行设置Where选项,将限制表中记录参加汇总,而对动态集中数据分组记录并没有直接影响。
例如,汇总1998年每位学生的总成绩及平均成绩,与汇总历年每位学生的总成绩及平均成绩
这样两个汇总查询,其动态集中的记录数是相同的(假定成绩表没有变化),仅仅是总成绩以及平均成绩不同而已。
像这样要汇总1998年每位学生的总成绩,应建立总计查询表达式。
表达式中,引用Year([考试日期])函数(先选择“考试日期”字段,再输入函数Year),并在“总计”行设置Where选项,此时显示复选框中的对钩消失(在动态集中不出现该列),最后在“准则”行输入条件“1998”。
运行这个查询,则仅仅汇总1998年每位学生的总成绩及平均成绩。
4.为汇总建立表达式
建立自己的汇总表达式,在表达式中根据几类汇总建立汇总表达式,例如:表达式“Max([成绩])-Min([成绩])”
汇总每位学生1999年与1998年两年的计算机课程的考试成绩(最高分、最低分以及它们的差值),应建立如下的汇总查询:在“字段”行输入汇总表达式“Max([成绩])-Min([成绩])”,并在该字段的“总计”行选择Expression(表达式)选项,在“课程名称”字段的“准则”行输入“计算机”,最后单击“运行”按钮。
五、建立参数查询
但是有时查询条件可能只有在运行查询时才能确定。
用户无法在查询设计窗口中输入查询条件。
为了解决这个问题,Access允许用户在查询设计窗口中输入一个参数,然后当查询运行时,Access提示输入查询条件,来完成不同的查询任务。
使得查询的应用更加灵活。
(1)打开“显示表和查询设计窗口”,将“成绩”表添加到“查询设计窗口”中。
(2)关闭“显示表窗口”。
(3)分别双击“成绩”表中的“学号”、“课程名称”、“成绩”字段,将其
添加到下方窗口中。
(4)在“课程名称”字段的准则行中输入:[输入课程名称]。
(5)单击工具栏上的“运行”按钮,此时会出现“输入参数值”对话框。
(6)输入参数值。
这里我们输入:计算机,Access即会运行查询并显示查询结果。
六、建立动作查询
能够对数据完成指定动作的查询。
具体讲,它可定义一个能完成某些工作的查询,不仅仅是选择一组特定的记录以供用户查看,并且还将它们在动态集中显示出来。
动作查询可以被认为是一种在动态集对指定的记录组给出任务并执行的选择查询。
它使用户不但可以利用查询对数据库中的数据进行简单地检索、显示和统计,而且可以根据自己的需要对数据库进行一定的修改。
分为4种类型:
·生成表查询
·更新查询
·追加查询
·删除查询
下表列出了这四种动作查询的用途和异同点。
从这个表中,我们可以对动作查询的4种类型有一个初步的了解。
1.生成表查询
利用一个或多个表中的全部或部分数据创建一个新表。
用于以下几个方面:
·创建基于一个或多个表中的字段的新表,并将所得的新表用于其他的Access数据库中的表。
·创建从特定条件的数据表。
例如创建籍贯为北京的学生的数据表。
·创建表的备份。
·提高基于表查询或SQL语句的窗体和报表的性能。
操作步骤如下:
首先创建一个选择查询,再在其基础上建立生成表查询。
(1)打开源数据所在的数据库(本例打开“xuesheng”数据库)。
(2)单击数据库窗口内的“查询”按钮(打开查询列表)——单击工具栏上的“新建”按钮(打开“新建查询”对话框)。
(3)选择“设计视图”选项——单击“确定”按钮。
(4)在“显示表”对话框中,双击选择要处理的对象。
在本例中,选择“学生”作为查询对象——单击“关闭”按钮。
(5)选择“学生”表中的“姓名”字段和“学号”字段,将其拖放到下方的网格中,并为“学号”字段的条件行中输入:Like "10001*"。
(6)单击“查询”菜单——执行“生成表查询”命令,或单击工具栏上的“查询类型”下拉按钮,从下拉菜单中选择“生成表查询”选项(打开“生成表”对话框)。
(7)输入表名称(本例输入“C1”)——单击“确定”按钮(关闭此对话框)。
(8)单击工具栏上的“执行”按钮。
提示将要向新表中粘贴记录,单击“是”按钮。
生成表查询已经生成,当转到数据库窗口,选择对象组中的“表”时,可以看到表列中已经有了名为“C1”的新表了。
2.更新查询
对一个或多个表中的一组记录作全局地更改。
以“xuesheng”数据库为例,建立更新查询。
首先创建一个选择查询,再在其基础上建立更新查询。
操作步骤如下:
(1)打开“xuesheng”数据库。
(2)单击数据库窗口内的“查询”按钮——单击工具栏上的“新建”按钮。
(3)在“新建查询”窗口中选择“设计视图”选项——单击“确定”按钮。
(4)在“显示表”对话框中,选择要处理的对象(在本例中,选择“学生”作为查询对象)——单击“关闭”按钮。
(5)选择“学生”中的“学号”和“年龄”字段,将其拖放到下方网格中。
(6)单击“查询”菜单——“更新查询”命令,或者单击工具栏上的“查询类型”按钮,从下拉菜单中选择“更新查询”选项。
(7)选择完成之后,查询的标题改变为“更新查询”,并在下方的网格中出现了一个称为“更新到”的新行,可以在这里设置更新当前字段的新值;同时,“排序”行和“显示”行消失。
(8)在“年龄”字段的“更新到”行中输入:[年龄]+1。
(9)单击工具栏上的“执行”按钮(出现“提示”对话框)——单击“是”按钮。
(10)关闭查询窗口(出现提示是否保存查询的对话框)。
(11)输入查询名——单击“确定”按钮,Access保存查询的内容。
在数据表视图下打开“学生”表,此时可以看到以“年龄”已经被更改成新的值。
3.追加查询
从一个或多个表中将一组记录追加到另一个或多个表的尾部。
为指定的表增加记录,要增加记录的表必须是一个已经存在的表,而且这个表可以是同一个数据库或其他Access数据库。
但是,在使用追加查询时,必须遵循以下规则:
·如果准备追加记录的表有主关键字字段,追加的记录不能有空值或重复主关键字值。
否则,Access不能追加该记录。
·如果追加记录到另一个数据库,必须指明数据库的路径位置和名字。
·如果在查询设计窗口下方的网格中的“字段”行中使用星号(*)字段,不能再在“字段”行中使用同一表的单个字段。
Access将不添加该记录,认为是试图两次增加同一个字段内容到同一记录,星号(*)字段也不能作为“准则”行使用。
·添加有“自动编号”数据类型字段的记录时,如果被添加的表也有该字段和记录内容,就不要包括“自动编号”字段。
如果要增加到新表并且准备让新表有基于该准则的新自动编号,也不要使用“自动编号”字段。
实例分析:由于某种原因休学的学生复学后,需要将他(她)的有关记录从备份文件(这里假定该文件是“学生”表)中添加到“学生2”表中。
操作步骤如下:
(1) 单击数据库窗口内的“查询”按钮——双击“在设计视图中创建查询”选项(打开“查询设计窗口”和“显示表”对话框)。
(2)在“显示表”对话框中双击要建立查询的表(追加源表)。
本例,选择“学生”表。
(3)单击“关闭”按钮(关闭“显示表”对话框)。
(4)双击“学生”标题栏选择全部字段,然后将其拖放到下方的网格中,并在“学号”字段所在的“准则”行输入:[请输入学号]。
(5)单击“查询”菜单并执行“追加查询”命令(出现“追加到”对话框)。
(6)单击“表名称”下拉按钮,选择要进行追加到的表(目的表)——单击“确定”按钮。
本例,选择“学生2”。
(7)单击工具栏上的“执行”按钮(出现“输入参数值”对话框)。
(8)输入查询参数。
本例,要添加的学号是“100038”。
(9)单击“确定”按钮(出现“提示”对话框)——单击“是”按钮。
(10)关闭查询窗口(出现提示是否保存查询的对话框)。
(11)输入查询名——单击“确定”按钮。
在数据库的表对象中打开“学生2”表,此时可以看到学号为“100038”的信息被添加到该数据表中。
4.删除查询
删除查询就是从一个或多个的表中按照一定的条件删除一组记录(整个记录,而不只是记录中的所选字段)。
操作步骤如下(以“xuesheng”数据库为例,建立删除查询):
(1)打开“xuesheng”数据库——单击数据库中的“查询”按钮——单击工具栏上的“设计”按钮。
(2)在“显示表”对话框中双击要建立查询的表。
本例,选择“学生2”表。
(3)单击“关闭”按钮(关闭“显示表”对话框)。
(4)在“学生2”表中选择“学号”字段,然后将其拖放到下方的网格中,并在“准则”行输入:[请输入学号]。
(5)单击“查询”菜单并执行“删除查询”命令(打开“删除查询”对话框)。
(6)单击工具栏上的“执行”按钮(出现“输入参数值”对话框)。
(7)输入查询参数。
本例,输入的是“100038”。
(8)单击“确定”按钮(给出“提示”框)。
(9)单击“是”按钮,即可从“学生2”表中删除该学生。
按照上述操作过程删除“学生2”表中的数据时,如果此时“学生2”表正处于打开状态,则在执行完删除操作之后会看到表中被删除的数据单元格显示“#已删除的”的标志。
七、SQL查询
使用SQL语句直接创建的一种查询。
在建立Access查询时并不是所有的查询都可以在系统所提供的查询设计视图中进行创建,有的查询功能只能通过SQL语句来实现(如查询结果的唯一性,必须用SQL添加“DISTINCT”参数)。
在打开了“设计视图”或“数据表视图”之后,可以通过单击工具栏上“视图”下拉按钮,从中选择“SQL视图”选项,打开“SQL视图”既可看到所创建的查询的SQL语句。