null第五章第五章查询5.1 查询5.1 查询一、查询的特点
查询能够对
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
中存储的数据进行检索、统计、分析、查看和更改。
查询是根据给定的条件筛选记录或者进一步对筛选出来的记录做某种操作的数据库对象。5.1 查询5.1 查询Access 允许用户在前台(选择查询设计视图窗口)通过直观的操作构造查询,系统在后台(SQL视图窗口)自动生成对应的SQL语句。null筛选出来的记录组成一个动态集(Dynaset),并以数据表视图的方式显示。
查询是一个临时表,当用户关闭动态集数据表视图时,动态集消失。 null查询对象仅仅保存查询的结构 ——查询所涉及到的表和字段、排序
准则
租赁准则应用指南下载租赁准则应用指南下载租赁准则应用指南下载租赁准则应用指南下载租赁准则应用指南下载
、筛选条件等。
表和查询都是查询的数据源,而查询则是窗体、报表和数据访问页的数据源。null二、查询的类型
选择查询
参数查询
交叉表查询
动作查询(操作查询)
SQL查询5.2 选择查询5.2 选择查询 选择查询是最常见、最简单的查询类型,它从一个或多个表中检索数据,并以数据表形式显示结果。5.2 选择查询5.2 选择查询创建选择查询的两种方法:
一、使用查询向导
二、使用设计视图5.2 选择查询5.2 选择查询一、使用查询向导创建查询
适用于从多个表或查询中选取字段,以组成新的数据表视图的显示方式。
例如:生成“查询成绩单”。null 二、使用设计视图
1、查询设计视图的结构
上半部分叫表/查询输入区:
用于显示查询要使用的表或其它查询;
下半部分叫范例查询设计网格:
用于确定动态集所拥有的字段和筛选条件等。设置如下几行:null【字段】行:设置查询所涉及到的字段。
【表】行:指明字段所归属的表。
【排序】行:设置查询的排序准则。
【显示】行:确定相关字段是否在动态集中显示。当复选框选中时,相关字段将在动态集中显示。
【条件】行:设置查询字段的筛选条件。
【或】行:对同一字段的筛选条件使用逻辑运算符“或”。null2、运行查询
三种方法:
在选择查询设计视图中直接单击工具栏上的【运行】按钮 。
在选择查询设计视图中直接单击工具栏上的【视图】按钮 。
在【数据库】窗口中,首先选择要运行的查询,然后单击【打开】按钮 。null3、修改查询
对于建立好的查询,可以进行设计修改。
撤消字段
插入字段
移动字段
命名字段 5.3 查询条件5.3 查询条件 查询条件就是在创建查询时所添加的一些限制条件,使用查询条件可以使查询结果中仅包含满足要求的数据记录。null一、输入查询条件
查询条件即表达式。
Access的许多操作中都要使用表达式,表达式就是算术或逻辑运算符、常数、函数和字段名称、控件和属性的组合,计算结果为单个值。null二、用逻辑运算符组合条件
逻辑运算符有三个:
And、Or 和 NotnullAnd和Or运算符
在多个【条件】单元格中输入表达式时,Access用And或Or运算符进行组合。
And运算符
如果在同一行的不同单元格中设置了条件,Access用And运算符,表示筛选满足所有单元格条件的记录。nullOr运算符
如果在多个不同行中设置条件,Access用Or运算符,表示筛选只要满足任何一个单元格条件的记录。
null Not运算符
利用Not运算符可以设置字段的不匹配值。
注意:输入运算符时,英文使用大、小写均可。null三、用关系运算符组合条件
六个关系运算符:
大于>、小于<、不等于<>、大于等于>=、小于等于<=、等于=
利用关系运算符可以设置字段的取值范围。null见教材P74null四、用Between运算符组合条件
Between运算符也可以指定字段的取值范围,范围之间用And连接。
例如:查询成绩在80~90分之间的记录。“成绩”字段的条件应设置为: Between 80 And 90null五、用In运算符组合条件
In运算符用于指定字段的一系列值。
例如:查询“学历”是硕士,或者“学历”是本科的记录。null六、用Like运算符组合条件
Like用于查找字段的部分值。
格式为: Like 字符模式
其中的字符模式,用“?”表示该位置可匹配任何一个字符;用“*”表示该位置可匹配零或多个字符;用“#”表示该位置可匹配一个数字;用“[ ]”方括号描述一个范围。null例如: Like”李?”
Like”李*”
七、Left、right运算符
用于查找字段的特定部分值
Left([姓名],1)=“张”
right ([姓名],1)=“玲” 5.4 查询中的计算5.4 查询中的计算 有时,用户可能对表中的每一条记录并不十分关心,而仅仅关心每个学生的总成绩、平均成绩等汇总结果。为了获得这些汇总数据,要在查询中执行计算。
查询中的计算有两种:预定义计算和自定义计算。null一、预定义计算
预定义计算用于对查询中的分组记录或全部记录进行“总计”计算。
例如:求总和、平均值、计数、最小值、最大值、
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
偏差或方差,Access通过聚合函数来完成这些计算。null 在打开的选择查询设计视图中,单击工具栏上的【总计】按钮,在设计网格中增加【总计】行。
例如:统计男、女各多少人?null统计不同职称的人数是多少?
注意:在“设计视图”中右击字段,将“属性”的“标
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
”项改变即可。null例如:统计每个老师所开设的课程数?null例:统计“ACCESS8”班的“计算机基础与操作(下)”课程的平均成绩?null例:统计“ACCESS8”班“女生”的“计算机基础与操作(下)”课程的平均成绩?null【总计】行用于为参与汇总计算的所有字段设置汇总选项。
【总计】行共有12个选项,分别是:
Group By选项:用以指定分组汇总字段。
Sum选项:为每一组中指定的字段进行求和运算。
Avg选项:为每一组中指定的字段进行求平均值运算。nullMin选项:为每一组中指定的字段进行求最小值运算。
Max选项:为每一组中指定的字段进行求最大值运算。
Count:根据指定的字段计算每一组中记录的个数。
StDev:根据指定的字段计算每一组的统计标准差。
Var:根据指定的字段计算每一组的统计方差。nullFirst:根据指定的字段获取每一组中第一条记录该字段的值。
Last:根据指定字段获取每一组中最后一条记录该字段的值。
Expression:用以在设计网格的“字段”行中建立计算表达式。
Where:限定表中的哪些记录可以参加分组汇总的条件。 null二、自定义计算
1、自定义计算是在设计网格中创建新的计算字段。计算字段是在查询中重新定义的字段。null二、自定义计算
2、创建计算字段的方法:
将表达式输入到查询设计网格的空“字段”单元格中。null 注意:如果表达式中包含字段名,必须用方括号将字段名称括起来。5.5 建立交叉表查询5.5 建立交叉表查询 一种特殊类型的汇总查询——交叉表查询。交叉表查询生成的动态集看起来像一个二维
表格
关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载
,在表格中生成汇总计算值。5.5 建立交叉表查询5.5 建立交叉表查询【交叉表】行
用于确定作为二维表格行标题和列标题的字段,以及行列交叉汇总字段。null例:按照性别分类,统计不同职称的人数是多少?null例:交叉表可以反映每个学生各科成绩!null交叉表查询结构5.6 建立参数查询5.6 建立参数查询 在查询设计视图中先输入一个参数,当查询运行时,再提示输入筛选条件。
在【条件】行或【或】行的关系表达式中输入一个放在方括号中的短语。 null例:[请输入您要查询的学院名称:]nullbetween [输入起始日期] and [输入终止日期]5.7 建立操作查询5.7 建立操作查询 操作查询(Action Query)是建立在选择查询基础之上的查询。动作查询可以在一个操作中更改许多记录。5.7 建立操作查询5.7 建立操作查询 操作查询分为四种类型:
生成表查询
追加查询
删除查询
更新查询一、建立更新查询 一、建立更新查询 更新查询是在指定的表中对筛选出来的记录进行更新操作。更新查询用在需要一次更新许多数据的操作中。
例如:每个人的基本工资都上调10%;
更改一些错误;null例:将姓名为“宋思思”的学生姓名改为“宋丝丝”。二、建立生成表查询二、建立生成表查询 生成表查询是把从指定的表或查询中筛选出来的记录集生成一个新表。
这对于从若干个表中获取数据,并需要将数据永久保留的任务是非常方便的。null注意:
利用生成表查询建立新表时,新表中的字段从生成表查询的源表中继承字段名称、数据类型以及【字段大小】属性。
但是不继承其它的字段属性以及表的主键。如果要定义主键或其它的字段属性,要在表设计视图中进行。 null例:将2003-2004年度第二学期“不及格”的学生相关内容生成到一新表中。三、建立追加查询 三、建立追加查询 追加查询是将从表或查询中筛选出来的记录添加到另一个表中去。
被追加记录的表必须是已存在的表。它可以是当前数据库的,也可以是另外一个数据库的。
追加查询对于从表中筛选记录添加到另一个表中是很有用的。四、建立删除查询 四、建立删除查询 删除查询是在指定的表中删除筛选出来的记录。在所有动作查询中。
删除查询是最危险的。因为删除查询将永久地和不可逆地从表中删除记录。
另外删除查询是删除整条记录,而不是指定字段中的数据。5.8 SQL查询5.8 SQL查询SQL查询是使用SQL语句创建的查询。
SQL简介
SQL是结构化查询语言(Structured Query Language)的缩写,其功能包括数据查询、数据操纵、数据定义和数据控制四个部分。null数据查询语句:数据查询命令是SELECT
数据定义语句(DATA DEFINITION LANGUAGE,简称DDL)实现其数据定义功能,可对数据库用户、基本表、视图、索引进行定义和撤消。null数据控制语句 (Data Control Language,简称DCL)对数据库进行统一的控制管理。
数据操纵语句( Data Manipulation
Language ,DML)及其编译程序,实现对数据库的基本操作,包括检索、插入、修改、删除等。 null 在查询“设计”视图中创建查询时,Access 将在后台构造等效的SQL语句。
Access中所用的查询都可以认为是SQL查询。
null 在建立ACCESS的查询时,并不是所有的查询都可以在查询设计视图中进行创建,有的查询功能只能通过SQL语句来实现。一、使用SELECT语句(P85)一、使用SELECT语句(P85)1、SQL语言提供SELECT语句,通过查询操作可得到所需的信息。
SELECT语句的一般格式为:SELECT [ALL / DISTINCT] */字段列表
FROM <表名1> [, <表名2> ]…
[WHERE〈条件表达式〉]
[GROUP BY <列名1> [HAVING <条件表达式>]]
[ORDER BY <列名2> [ASC|DESC]];null SELECT语句的执行过程是:
根据WHERE子句的检索条件,从FROM子句指定的基本表中选取满足条件的元组(记录),再按照SELECT子句中指定的列,投影得到结果表。null如果有GROUP子句,则将查询结果按照<列名1>相同的值进行分组。
如果GROUP子句后有HAVING短语,则只输出满足HAVING条件的元组。
如果有ORDER子句,查询结果还要按照<列名2>的值进行排序。null 在何处编写SELECT语句?
按下“在设计视图中创建查询”选项,在显示表的窗口内直接按“关闭”按钮,此时就是设计视图的窗口。接着按“视图”按钮下的“SQL视图”,即进入SQL语句的编写模式。null例1 查询学生的学号、姓名和性别。
SELECT ALL 编号,姓名,性别 FROM 学生;
例2 查询学生的全部信息。
SELECT * FROM 学生;null例3 查询教师授课详细情况。
SELECT 教师.教师编号,教师.姓名,教师授课.课程编 号,教师授课.班级ID,教师授课.授课时间,教师授课.授课地点
from 教师,教师授课
where 教师.教师编号=教师授课.教师编号;null2、多重条件查询
要在表中找出满足某些条件的行时,需使用
WHERE子句指定查询条件。null2、多重条件查询
WHERE子句中条件通过三部分来描述:
1.列名;
2.比较运算符;
3.列名、常数。 null例4 查询所有职称是“工程师”的教师的编号和姓名。
SELECT 教师编号,姓名 FROM 教师 WHERE 职称=“工程师”null例5 查询86年出生的学生的基本情况。
SELECT * FROM 学生
WHERE 出生年月>=#1986-01-01# and 出生年月<=#1986-12-31#
或
SELECT * FROM 学生
WHERE year(出生年月)=1970null例6 查询成绩在60分以下的学生姓名、班级、成绩。
SELECT 学生.姓名, 学生.班级ID, 学生选课及成绩.成绩
from 学生, 学生选课及成绩
where 学生.学号=学生选课及成绩.学号 and 学生选课及成绩.成绩<60;null当WHERE子句需要指定一个以上的查询条件时,则需要使用逻辑运算符AND、OR和NOT将其连结成复合的逻辑表达式。
其优先级由高到低为:NOT、AND、OR,用户可以使用括号改变优先级。null3、部分匹配查询
当不知道完全精确的値时,用户还可以使用LIKE或NOT LIKE进行部分匹配查询(也称模糊查询)。
LIKE定义的一般格式为:
<属性名> LIKE <字符串常量>
属性名必须为字符型,字符串常量的字符可以包含如下两个特殊符号:
*:表示任意长度的字符串;
?:表示任意单个字符。null例7 查询所有姓张的教师的教师编号和姓名。
SELECT 教师编号,姓名
FROM 教师
WHERE 姓名 LIKE “张*” ;
例8 查询姓名中第二个汉字是“万”的教师编号和姓名。
SELECT 教师编号,姓名
FROM 教师
WHERE 姓名 LIKE “?万*” ;
null4、常用库函数及统计汇总查询
SQL提供了许多库函数,增强了基本检索能力。null常用的库函数,如表所示。null例9 求学号为0312010151学生的总分和平均分。
SELECT SUM(成绩) AS 总分, AVG(成绩) AS 平均分
FROM 学生选课及成绩
WHERE 学号=“0312010151” ;
注意:
函数SUM和AVG只能对数值型字段进行计算。null 例10 求最高分
SELECT max(成绩)
FROM 学生选课及成绩
WHERE 课程编号=“51012104BK” ;
例11 求学校中共有多少个学院
SELECT COUNT(学院代码) AS 学院数
FROM 学院
例12 利用特殊函数COUNT(*)求学生的总数
SELECT COUNT(*) FROM 学生null5、分组查询
GROUP BY子句可以将查询结果按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组合上具有相同的值。null例13 查询各位教师的教师姓名及其任课的门数。
SELECT 教师编号,COUNT(*) AS 授课门数
FROM 教师授课
GROUP BY 教师编号
GROUP BY子句按教师编号的值分组,所有具有相同编号的元组为一组,对每一组使用函数COUNT进行计算,统计出各位教师任课的门数。 null若在分组后还要按照一定的条件进行筛选,则需使用HAVING子句。
例14
SELECT 教师编号,COUNT(*) AS 授课门数
FROM 教师授课
GROUP BY 教师编号
HAVING COUNT(*)>=2null在一个SQL查询中同时使用WHERE子句,GROUP BY 子句和HAVING子句时,其顺序是WHERE,GROUP BY, HAVING。
nullWHERE与HAVING子句的根本区别在于作用对象不同。
WHERE子句作用于基本表或视图,从中选择满足条件的元组;
HAVING子句作用于组,选择满足条件的组,必须用于GROUP BY子句之后,但GROUP BY子句可以没有HAVING子句。null6、查询嵌套
在WHERE子句中包含一个形如SELECT-FROM-WHERE的查询块,此查询块称为子查询或嵌套查询,包含子查询的语句称为父查询或外部查询。null6、查询嵌套
嵌套查询可以将一系列简单查询构成复杂查询,增强查询能力。
二、SQL特定查询二、SQL特定查询某些 SQL 查询,称为 SQL 特定查询:传递查询、数据定义查询、联合查询、子查询。
传递查询、数据定义查询、联合查询不能在设计网格中创建。必须直接在“SQL”视图中创建 SQL 语句。null联合查询将两个或更多个表或查询中的字段合并到查询结果的一个字段中。使用联合查询可以合并两个表中的数据。
SELECT 城市, 公司名称 , 联系人姓名, "客户" AS [关系]
FROM 客户
UNION SELECT 城市, 公司名称, 联系人姓名, "供应商"
FROM 供应商
ORDER BY 城市, 公司名称;nullnull传递查询
传递查询使用服务器能接受的命令直接将命令发送到 ODBC(开放式数据库连接)数据库,如 Microsoft FoxPro,SQL Server传递查询可以不必链接到服务器上的表而直接来检索记录或更改数据。null数据定义查询
数据定义查询可以创建、删除或改变表,也可以插入、更新、删除表中的记录。 1、插入数据记录1、插入数据记录 插入数据是把新的记录插入到一个存在的表中。插入数据使用语句INSERT INTO,可分为以下几种情况。
1、插入数据记录1、插入数据记录插入数据INSERT INTO语句
语法格式为:
INSERT INTO <表名>[(<列名1>[,<列名2>…])] VALUES(<值>)
INSERT INTO 产品 VALUES("10001", "电视机", 2500)null2、更新记录
SQL语言可以使用UPDATE语句对表中的一行或多行记录的某些列值进行修改。null2、更新记录
UPDATE语句语法格式为:
UPDATE <表名>
SET <列名>=<表达式> [,<列名>=<表达式>]…
[WHERE <条件>]null其中:
<表名>是指要修改的表
SET子句给出要修改的列及其修改后的值
WHERE子句指定待修改的记录应当满足的条件,WHERE子句省略时,则修改表中的所有记录。
UPDATE 产品 SET 单价="3000" WHERE 产品编号="10001"null3、删除数据记录
使用DELETE语句可以删除表中的一行或多行记录,其语法格式为:
DELETE
FROM<表名>
[WHERE <条件>]
其中,
<表名>是指要删除数据的表。
WHERE子句指定待删除的记录应满足的条件。WHERE子句省略时,则删除表中的所有记录。4、创建表 CREATE TABLE4、创建表 CREATE TABLE CREATE TABLE 产品(产品编号 CHAR(5), 名称 CHAR(10), 单价 NUMERIC)
5、删除表 DROP TABLEnull子查询
在WHERE子句中包含一个形如
SELECT-FROM-WHERE
的查询块,此查询块称为子查询。
子查询可以增强查询能力。null子查询
例:查询“周一12”上课的教师情况。
SELECT * FROM 教师
WHERE 教师编号 IN (SELECT 教师编号 FROM 教师授课 WHERE 授课时间="周一12");