当前位置:文档之家› 《Access2010数据库基础教程》查询

《Access2010数据库基础教程》查询

建立查询的方法有:查询向导和查询设计
3.4.1 在设计视图中创建查询
创建不带条件的 查询
可以基于单数 据源或者多数 据源的查询。 如基于多数据 源,则表间已 建立关系
创建带条件的查 创建要求用户输

入条件值的查询
可以基于单数 据源或者多数 据源的查询。 查询条件是关 系表达式,表 达式的运算结 果是一个逻辑 值
3.2.1 简单查询向导
【例3.2】查询每位住院病人的总费用,显示“病人编 号”、“病人姓名”和“总费用”3个字段。
3.2.2 交叉表查询向导
用户的查询需求需要对数据进行分类统计。交又表查询 显示来源于表中某个字段的统计值,并将它们分组放置 在查询表中。左侧列显示的字段是行标题,上侧列显示 的字段是列标题。
【例3.15】创建一个删除查询,删除“住院医生护士信息表 的副本”中所有的主任医生和副主任医生。
3.7 SQL查询
❖ 语句格式: SELECT <目标列表达式> [,<目标列表达式>] … FROM <表名>[, <表名> ] … [ WHERE <条件表达式> ] [ GROUP BY <列名1> [ HAVING <条件表达式> ] ] [ ORDER BY <列名2> [ ASC|DESC ] ];
说明 逻辑运算符
连接运算符
特殊运算符
查询条件中使用的各种运算符
3.3.2 查询条件中使用的函数
1、字符函数
求字串长度: Len(C) 取子串:Left(C,N)
Right(C,N) Mid(C,n1[,n2])
2、日期时间函数
Len([姓名])=2 Left([姓名],1)=“张” Right([姓名],1)=“中” Mid([姓名],2,1)=“平”
❖ 查询仅涉及一张表: 简单查询 选择表中的若干元组 ORDER BY子句 聚集函数 GROUP BY子句
一、简单查询
【例3.16】查询所有住院病人的信息。用SQL语句实现。 Select * from 住院病人信息表
【例3.17】查询前5个病人的姓名和年龄。用SQL语句实 现。
SELECT TOP 5 住院病人信息表.病人姓名, Year(Date())-Year([出 生日期]) AS 年龄 FROM 住院病人信息表
使用查询向导创建查询几点说明: ➢不能对记录进行筛选和排序 ➢不能改变查询中字段的顺序 ➢允许对数值字段进行汇总统计
汇总查询必须包含且只能包含汇总统计的数值型字段 和用于汇总依据的分组字段。其它字段的添加将无法得 到期望的汇总效果。
3.2.1 简单查询向导
【例3.1】利用查询向导查找并显示“住院医生护士信 息表”中的 “用户姓名” 和“职称”2个字段。
【思考题】在已建查询【例3.3】上建立一个查询,能查询 某科室某医生诊治的病人,并显示“病人姓名” 。
3.4.2 使用查询进行统计计算
▲预定义计算 利用设计视图网格的【总计】行进行各种统计
▲自定义计算 创建计算字段进行任意类型的计算
1、预定义计算 预定义计算,即“总计”计算。 利用设计视图网格的
中【总计】行进行统计。 【总计】行的打开方式:单击【查询工具/设计】选
【思考题】统计所有姓“田”病人的住院总费用。
2、自定义计算
当需要统计的数据在表中没有相应的字段,或者用于 计算的数据值来源于多个字段时,应在查询中使用计算 字段。 计算字段是指根据一个或多个字段使用表达式建立的 新字段(查询中的显示字段)。 创建计算字段是在查询设计视图的【字段】行中直接 输入计算表达式。
☆排序
查询结果中相应字段的排序方式
☆显示
设置在数据表视图中是否显示该字段
☆条件
查询条件(同行之间为“与”关系)
☆或
查询条件(不同行之间为“或”关系)
一、创建不带条件的查询
使用查询设计视图创建查询首先要打开查询的设计视 图窗口,然后根据需要进行查询的定义。 ★操作步骤: ①打开数据库 ②在【创建】选项卡的【查询】组中单击【查询设计】 按钮,打开查询设计器窗口 ③在查询设计器窗口中定义查询 ④保存查询
【例3.12】将主任医师的信息生 成一张独立的数据表。表中包含 “用户编码”、“用户姓名”。
创建操作查 询之前,先 要对操作的 表进行备份
二、追加查询
追加查询可将查询的结果追加到其他表(可以有数据,也可 以是空白表)中,追加的数据用查询条件加以限制。 【例3.13】创建一个追加查询,将副主任医师追加到已 经建立的“例3-12主任医师信息表”中。 三、更新查询
求年龄最大的五位 SELECT TOP 5 住院病人信息表.病人姓名, Year(Date())-Year([出 生日期]) AS 年龄 FROM 住院病人信息表 ORDER BY Year(Date())-Year([出生日期]) DESC;
【例3.19】查询出年龄在60岁以上的病人。用SQL语句实 现。
更新查询能实现成批更新数据。能对一张或多张表中 的一组记录的某字段值进行全部更新。
【例3.14】创建一个更新查询,将“住院医生护士信息 表的副本”中所有“医师“改成“医生”。
四、删除查询
删除查询能够从一张或多张表中删除指定的记录。
如果删除的记录来自多张表,则必须满足以下几点要求: (1)在“关系”窗口中已经定义相关表之间的关系。 (2)在“编辑关系”对话框中选中“实施参照完整性”复选 框。 (3)在“编辑关系”对话框中选中“级联删除相关记录”复 选框。
Year(date) Month(date) Ddy(date)
Year([出生日期])=1995 Between #1980-1-1# and #1980-12-31# Year(date())-Year([出生日期])<4
3、统计函数
Sum(表达式) Avg(表达式) Count(表达式) Max(表达式) Min(表达式)
二、创建带条件的查询
在实际的查询中,经常需要查询满足某个条件的记录。带 条件的查询需要通过设置查询条件来实现。查询条件是运 算符、常量、字段值、函数以及字段名等任意组合的关系 表达式,其运算结果是一个逻辑值。
查询条件 在查询的设计视图中,查询条件应使用查询定义窗口中的条件
选项来设置,即在相应的字段的【条件】文本框中输入条件。 ▲条件表达式中通常省略字段名。
返回表达式中值的总和 返回表达式中值的平均值 返回表达式中值的计数 返回表达式中值的最大值 返回表达式中值的最小值
由运算符、常量、字段值、函数以及字段名等连接起来 的式子都是表达式。表、查询、窗体、报表和宏都接受 表达式的属性
3.4 选择查询
选择查询是最常用的查询类型,根据用户所指定的查 询条件,从一个或多个数据源表中获取数据并显示结果。 选择查询可以对记录进行分组,并进行各种统计,如:求 和、计数、求平均值等。
3.1.2 查询视图
数据表 视图 查询的数据浏览器,用于查看查询运行的结果
设计 视图
查询设计器,通过该视图可以创建除SQL查询之外的 各种查询
数据源 查询设计区
SQL 视图
查看和编辑SQL语句的窗口
3.2 利用向导创建查询
Access 2010提供了4种类型的查询向导: 简单查询向导 交叉表查询向导 查找Biblioteka 复项查询向导 查找不匹配项查询向导
项卡【显示/隐藏】组中的【汇总】按钮。
【例3.8】统计各个科室住院人数。查询结果按住院人数 降序排列。
【总计】下拉列表框中含以下各选项: 分组( Group By) 合计 平均值 最小值 最大值 计数(Count) 条件( Where)
【思考题】创建查询显示住院总费用前5的病人,查询结果 中显示“住院病人编码”、“病人姓名”和“总金额”。
【例3.11】创建查询计算每位病人年龄,结果中显示“病 人编码”、“病人姓名”、“年龄”。其中“年龄”为 计算字段。
3.5 交叉表查询
交叉表查询是一种常用的统计表格,它显示来自于表中某 个字段的计算值(包括总计、平均值、计数或其他类型的 计算)。可将它们分组,一组为行标题,显示在数据表左 侧,另一组为列标题,显示在数据表的顶端,在表格行和 列的交叉位置处显示表中某个字段的各种计算。
设计交叉表查询需要字义3种字段: 处于数据表最左端的行标题字段
把某一字段或相关数据放入指定的一行中。 处于数据表最上边的列标题字段
对每一列指定的字段进行统计,并将统计结果放在该列。 处于行和列交叉位置的值字段
可以为该字段指定总计项。
【思考题】用交叉表查询实现统计各科室男女病人人数。
在交叉表查询中: ➢只能指定一个列字段和一个总计类型的字段。 ➢可以通过设置一个或多个行标题,创建多级交叉表查 询。
医生 编码
1173
住院科室信息表
科室编码 科室名称
438
血透室
查询结果
病人 用户 姓名 姓名 万庆伏 昌文婷
科室 名称 血透室
……
……
……
查询的功能:
1)选择字段和记录 选择字段:在查询的结果中可以只含有表中的部分字段。 选择记录:在查询的结果中,只含有符合指定条件的记录。
2)编辑记录 即利用查询添加、修改和删除表中的记录。
3)统计和计算 即在查询中进行各种统计计算,也可以建立一个计算字段
来保存计算的结果。 4)为其他数据库对象提供数据源
即以查询的结果作为查询、窗体或报表的数据源
3.1.1 查询的类型
选择查询 选择字段、记录并作统计
交叉表查询 重组数据结构并实现统计
操作查询 对表中的记录做更改
SQL查询 用结构化的语言实现查询
3.3 查询条件
在Access2010中,查询条件是一个表达式,常量、字段名 、函数等运算对象用运算符连接起来的式子就是表达式, 计算结果为一个逻辑值。
相关主题