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

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【思考题】在已建查询【例3.3】上建立一个查询,能查询 某科室某医生诊治的病人,并显示“病人姓名” 。
3.4.2 使用查询进行统计计算
▲预定义计算 利用设计视图网格的【总计】行进行各种统计
▲自定义计算 创建计算字段进行任意类型的计算
1、预定义计算 预定义计算,即“总计”计算。 利用设计视图网格的
中【总计】行进行统计。 【总计】行的打开方式:单击【查询工具/设计】选
项卡【显示/隐藏】组中的【汇总】按钮。
【例3.8】统计各个科室住院人数。查询结果按住院人数 降序排列。
【总计】下拉列表框中含以下各选项: 分组( Group By) 合计 平均值 最小值 最大值 计数(Count) 条件( Where)
【思考题】创建查询显示住院总费用前5的病人,查询结果 中显示“住院病人编码”、“病人姓名”和“总金额”。
3.3 查询条件
在Access2010中,查询条件是一个表达式,常量、字段名 、函数等运算对象用运算符连接起来的式子就是表达式, 计算结果为一个逻辑值。
运算符
说明
运算符
+、—、*、/、 Mod、^
算术运算符
Not、And、Or
=, >, <, >=, <=, <>
关系运算符
&、+
Between…And、Like、In、 Is Null和 Is Not null
求年龄最大的五位 SELECT TOP 5 住院病人信息表.病人姓名, Year(Date())-Year([出 生日期]) AS 年龄 FROM 住院病人信息表 ORDER BY Year(Date())-Year([出生日期]) DESC;
【例3.19】查询出年龄在60岁以上的病人。用SQL语句实 现。
设计交叉表查询需要字义3种字段: 处于数据表最左端的行标题字段
把某一字段或相关数据放入指定的一行中。 处于数据表最上边的列标题字段
对每一列指定的字段进行统计,并将统计结果放在该列。 处于行和列交叉位置的值字段
可以为该字段指定总计项。
【思考题】用交叉表查询实现统计各科室男女病人人数。
在交叉表查询中: ➢只能指定一个列字段和一个总计类型的字段。 ➢可以通过设置一个或多个行标题,创建多级交叉表查 询。
一、创建不带条件的查询
【例3.3】查询每位病人的住院情况,需要了解每位病人的 住院医生以及病人所在科室。并显示“病人编码”、“病人 姓名”、“用户(医生)姓名”、“科室名称”等字段信息 。所建查询名为“病人的住院医生和所在科室情况”。
分析:这些信息分别来自于住院病人信息表、住院医生 护士信息表、住院科室信息表,且三张表间应已建立关系。
【思考题】统计所有姓“田”病人的住院总费用。
2、自定义计算
当需要统计的数据在表中没有相应的字段,或者用于 计算的数据值来源于多个字段时,应在查询中使用计算 字段。 计算字段是指根据一个或多个字段使用表达式建立的 新字段(查询中的显示字段)。 创建计算字段是在查询设计视图的【字段】行中直接 输入计算表达式。
更新查询能实现成批更新数据。能对一张或多张表中 的一组记录的某字段值进行全部更新。
【例3.14】创建一个更新查询,将“住院医生护士信息 表的副本”中所有“医师“改成“医生”。
四、删除查询
删除查询能够从一张或多张表中删除指定的记录。
如果删除的记录来自多张表,则必须满足以下几点要求: (1)在“关系”窗口中已经定义相关表之间的关系。 (2)在“编辑关系”对话框中选中“实施参照完整性”复选 框。 (3)在“编辑关系”对话框中选中“级联删除相关记录”复 选框。
二、创建带条件的查询
在实际的查询中,经常需要查询满足某个条件的记录。带 条件的查询需要通过设置查询条件来实现。查询条件是运 算符、常量、字段值、函数以及字段名等任意组合的关系 表达式,其运算结果是一个逻辑值。
查询条件 在查询的设计视图中,查询条件应使用查询定义窗口中的条件
选项来设置,即在相应的字段的【条件】文本框中输入条件。 ▲条件表达式中通常省略字段名。
3)统计和计算 即在查询中进行各种统计计算,也可以建立一个计算字段
来保存计算的结果。 4)为其他数据库对象提供数据源
即以查询的结果作为查询、窗体或报表的数据源
3.1.1 查询的类型
选择查询 选择字段、记录并作统计
交叉表查询 重组数据结构并实现统计
操作查询 对表中的记录做更改
SQL查询 用结构化的语言实现查询
建立查询的方法有:查询向导和查询设计
3.4.1 在设计视图中创建查询
创建不带条件的 查询
可以基于单数 据源或者多数 据源的查询。 如基于多数据 源,则表间已 建立关系
创建带条件的查 创建要求用户输

入条件值的查询
可以基于单数 据源或者多数 据源的查询。 查询条件是关 系表达式,表 达式的运算结 果是一个逻辑 值
可以创建要求 用户输入条件 值的查询,也 称为参数查询
一、创建不带条件的查询
查询的设计视图分为上下两部分:
➢上半部分
用于显示查询的数据源(包括它们之间的关系)
➢下半部分
是查询设计区,用来定义查询的表格,表格的列对应查
询中的一个字段;行对应字段的属性或要求。
☆字段Hale Waihona Puke Baidu
查询结果中所显示的字段
☆表
查询数据源,即字段的来源
统计各科室各位医 生主治的男女病人
数呢?
3.6 操作查询
操作查询既需要检索记录,也需要更新记录。而且操作查 询可能对数据源中的数据进行大量的修改或删除。
生成表查询 文 追加查询 更新查询 删除查询
一、生成表查询
生成表查询利用一张或多张表中的全部或部分数据创建新 表。创建生成表查询时,关键是要在查询设计视图中设计 好将要生成表的字段和条件。
▲有多个条件,且涉及不同的字段时,则分别设置相应字段的条件。
▲同行的条件之间是“与”关系;不同行的条件之间是“或”关系
二、创建带条件的查询
【例3.4】查找1980年至1989年出生的男病人,并显示 “病人姓名”、“病人性别”、“家庭住址”。
【思考题】查找1990年以后出生的女病人和1960年以前 出生的男病人,显示“病人姓名”、“病人性别”、 “出生日期”。
三、创建用户输入条件值的查询
如果希望根据某个或某些字段不同的值来查找记录。 可以创建要求用户输入条件值的查询,也称为参数查询。 在这种查询方式中,用户以交互方式输入一个或多个条件 值。
【例3.6】按照病人姓名查询某病人的的住院医生以及病 人所在科室。并显示“病人编码”、“病人姓名”、 “用户(医生)姓名”、“科室名称”等字段信息。
说明 逻辑运算符
连接运算符
特殊运算符
查询条件中使用的各种运算符
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)=“平”
医生 编码
1173
住院科室信息表
科室编码 科室名称
438
血透室
查询结果
病人 用户 姓名 姓名 万庆伏 昌文婷
科室 名称 血透室
……
……
……
查询的功能:
1)选择字段和记录 选择字段:在查询的结果中可以只含有表中的部分字段。 选择记录:在查询的结果中,只含有符合指定条件的记录。
2)编辑记录 即利用查询添加、修改和删除表中的记录。
第3章 查询
3.1 查询概述 3.2 利用向导创建查询 3.3 查询条件(重点) 3.4 选择查询(重点) 3.5 交叉表查询 3.6 操作查询 3.7 SQL查询
3.1 查 询 概 述
住院医生护士信息表
用户编码 用户姓名 职称 1173 昌文婷 主任医生
住院病人信息表
病人 病人 科室 编码 姓名 编码 P1001 万庆伏 438
3.1.2 查询视图
数据表 视图 查询的数据浏览器,用于查看查询运行的结果
设计 视图
查询设计器,通过该视图可以创建除SQL查询之外的 各种查询
数据源 查询设计区
SQL 视图
查看和编辑SQL语句的窗口
3.2 利用向导创建查询
Access 2010提供了4种类型的查询向导: 简单查询向导 交叉表查询向导 查找重复项查询向导 查找不匹配项查询向导
❖ 查询仅涉及一张表: 简单查询 选择表中的若干元组 ORDER BY子句 聚集函数 GROUP BY子句
一、简单查询
【例3.16】查询所有住院病人的信息。用SQL语句实现。 Select * from 住院病人信息表
【例3.17】查询前5个病人的姓名和年龄。用SQL语句实 现。
SELECT TOP 5 住院病人信息表.病人姓名, Year(Date())-Year([出 生日期]) AS 年龄 FROM 住院病人信息表
【例3.12】将主任医师的信息生 成一张独立的数据表。表中包含 “用户编码”、“用户姓名”。
创建操作查 询之前,先 要对操作的 表进行备份
二、追加查询
追加查询可将查询的结果追加到其他表(可以有数据,也可 以是空白表)中,追加的数据用查询条件加以限制。 【例3.13】创建一个追加查询,将副主任医师追加到已 经建立的“例3-12主任医师信息表”中。 三、更新查询
☆排序
查询结果中相应字段的排序方式
☆显示
设置在数据表视图中是否显示该字段
☆条件
查询条件(同行之间为“与”关系)
☆或
查询条件(不同行之间为“或”关系)
一、创建不带条件的查询
使用查询设计视图创建查询首先要打开查询的设计视 图窗口,然后根据需要进行查询的定义。 ★操作步骤: ①打开数据库 ②在【创建】选项卡的【查询】组中单击【查询设计】 按钮,打开查询设计器窗口 ③在查询设计器窗口中定义查询 ④保存查询
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.11】创建查询计算每位病人年龄,结果中显示“病 人编码”、“病人姓名”、“年龄”。其中“年龄”为 计算字段。
3.5 交叉表查询
交叉表查询是一种常用的统计表格,它显示来自于表中某 个字段的计算值(包括总计、平均值、计数或其他类型的 计算)。可将它们分组,一组为行标题,显示在数据表左 侧,另一组为列标题,显示在数据表的顶端,在表格行和 列的交叉位置处显示表中某个字段的各种计算。
【例3.15】创建一个删除查询,删除“住院医生护士信息表 的副本”中所有的主任医生和副主任医生。
3.7 SQL查询
❖ 语句格式: SELECT <目标列表达式> [,<目标列表达式>] … FROM <表名>[, <表名> ] … [ WHERE <条件表达式> ] [ GROUP BY <列名1> [ HAVING <条件表达式> ] ] [ ORDER BY <列名2> [ ASC|DESC ] ];
返回表达式中值的总和 返回表达式中值的平均值 返回表达式中值的计数 返回表达式中值的最大值 返回表达式中值的最小值
由运算符、常量、字段值、函数以及字段名等连接起来 的式子都是表达式。表、查询、窗体、报表和宏都接受 表达式的属性
3.4 选择查询
选择查询是最常用的查询类型,根据用户所指定的查 询条件,从一个或多个数据源表中获取数据并显示结果。 选择查询可以对记录进行分组,并进行各种统计,如:求 和、计数、求平均值等。
3.2.1 简单查询向导
【例3.2】查询每位住院病人的总费用,显示“病人编 号”、“病人姓名”和“总费用”3个字段。
3.2.2 交叉表查询向导
用户的查询需求需要对数据进行分类统计。交又表查询 显示来源于表中某个字段的统计值,并将它们分组放置 在查询表中。左侧列显示的字段是行标题,上侧列显示 的字段是列标题。
使用查询向导创建查询几点说明: ➢不能对记录进行筛选和排序 ➢不能改变查询中字段的顺序 ➢允许对数值字段进行汇总统计
汇总查询必须包含且只能包含汇总统计的数值型字段 和用于汇总依据的分组字段。其它字段的添加将无法得 到期望的汇总效果。
3.2.1 简单查询向导
【例3.1】利用查询向导查找并显示“住院医生护士信 息表”中的 “用户姓名” 和“职称”2个字段。
相关文档
最新文档