第3章查询数据库技术.docx

上传人:b****3 文档编号:11205150 上传时间:2023-05-29 格式:DOCX 页数:37 大小:103.80KB
下载 相关 举报
第3章查询数据库技术.docx_第1页
第1页 / 共37页
第3章查询数据库技术.docx_第2页
第2页 / 共37页
第3章查询数据库技术.docx_第3页
第3页 / 共37页
第3章查询数据库技术.docx_第4页
第4页 / 共37页
第3章查询数据库技术.docx_第5页
第5页 / 共37页
第3章查询数据库技术.docx_第6页
第6页 / 共37页
第3章查询数据库技术.docx_第7页
第7页 / 共37页
第3章查询数据库技术.docx_第8页
第8页 / 共37页
第3章查询数据库技术.docx_第9页
第9页 / 共37页
第3章查询数据库技术.docx_第10页
第10页 / 共37页
第3章查询数据库技术.docx_第11页
第11页 / 共37页
第3章查询数据库技术.docx_第12页
第12页 / 共37页
第3章查询数据库技术.docx_第13页
第13页 / 共37页
第3章查询数据库技术.docx_第14页
第14页 / 共37页
第3章查询数据库技术.docx_第15页
第15页 / 共37页
第3章查询数据库技术.docx_第16页
第16页 / 共37页
第3章查询数据库技术.docx_第17页
第17页 / 共37页
第3章查询数据库技术.docx_第18页
第18页 / 共37页
第3章查询数据库技术.docx_第19页
第19页 / 共37页
第3章查询数据库技术.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第3章查询数据库技术.docx

《第3章查询数据库技术.docx》由会员分享,可在线阅读,更多相关《第3章查询数据库技术.docx(37页珍藏版)》请在冰点文库上搜索。

第3章查询数据库技术.docx

第3章查询数据库技术

第三章查询

3.1查询概述

查询是Access数据库中的一个重要对象,是使用者按照一定条件从Access数据库表或已建立的查询中检索需要数据的最主要方法。

3.1.1查询的功能

查询最主要的目的,是根据指定的条件,对表或者其他查询进行检索,筛选出符合条件的记录,构成一个新的数据集合,从而方便对数据库中的表进行查看和分析。

查询是能够将存储于一个或多个表中符合要求的数据挑选出来,并对挑选的结果按照某种规则进行运算的对象。

³主要有如下功能:

(1)选择字段

(2)选择记录(3)编辑记录

(4)实现计算(5)建立新表(6)为窗体或报表提供数据

³查询对象不是数据的集合,而是操作的集合。

查询的运行结果是一个数据集,也称为动态集。

它很像一个表,但并不存储在数据库中。

创建查询后,只保存查询的操作,只有在运行查询时,才会从查询数据源中抽取数据,并创建它;只要关闭查询,查询的动态集就会消失。

3.1.2查询的类型

在Access中,查询分为5种,分别是选择查询、交叉表查询、参数查询、操作查询和SQL查询。

5种查询的应用目标不同,对数据源的操作方式和操作结果也不同。

1.选择查询

选择查询是最常用的查询类型。

顾名思义,它是根据指定条件,从一个或多个数据源中获取数据并显示结果。

也对记录进行分组,并且对分组的记录进行总计、计数、平均以及其他类型的计算。

2.交叉表查询

使用交叉表查询能够以行列的格式分组和汇总数据,就像Excel的数据透视表一样。

它将数据分组,一组列于数据表的左侧,另一组列在数据表的上部。

交叉表查询将来源于某个表或查询中的字段进行分组,一组列在数据表左侧,一组列在数据表上部,然后在数据表行与列的交叉处显示数据源中某个字段统计值。

3.参数查询

参数查询是一种根据用户输入的条件或参数来检索记录的查询。

例如,可以设计一个参数查询,提示输入两个成绩值,然后Access检索在这两个值之间的所有记录。

4.操作查询

操作查询与选择查询相似,都需要指定查找记录的条件,但选择查询是检查符合特定条件的一组记录,而操作查询是在一次查询操作中对所得结果进行编辑等操作。

操作查询有4种:

生成表、删除、更新和追加。

5.SQL查询

SQL查询是使用SQL语句来创建的一种查询。

SQL查询有4种:

包括联合查询、传递查询、数据定义查询和子查询等。

联合杳询是将一个或多个表、一个或多个查询的字段组合起来,形成一个完整的查询。

执行联合查询时,将返回所包含的表或查询中的对应字段记录。

传递查询是直接将命令发送到ODBC数据库,它使用服务器能接受的命令,利用它可以检索或更改记录。

数据定义查询可以创建、删除或更改表,或在当前的数据库中创建索引。

子查询是包含另一个选择或操作查询中的SQLSELECT语句,可以在查询“设计网格”的“字段”行输入这些语句来定义新字段,或在“条件”行来定义字段的查询条件。

3.1.3查询的条件

查询条件是运算符、常量、字段值、函数以及字段名和属性等的任意组合,能够计算出一个结果。

1.运算符

运算符是构成查询条件的基本元素。

Access提供了关系运算符,逻辑运算符和特殊运算符3种。

(1)算术操作符:

加(+)、减(-)、乘(*)、除(/)和乘幂(^)

(2)关系操作符

小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(=)和不等于(<>)

(3)逻辑操作符

AND(逻辑与)、OR(逻辑或)和NOT(逻辑非)

(4)特殊操作符In、Like、IsNull、IsNotNull和Between

特殊运算符

说明

In

用于指定一个字段值的列表,表中任意值均可与查询的字段相匹配

Like

用于指定查找文本字段的字符模式,*,?

#,[]

IsNull

用于指定某一字段为空

IsNotNull

用于指定某一字段为非空

Between…AND

用于指定一个字段值的范围

2.函数(简单介绍几个)

 Access提供了大量的标准函数,如数值函数、字符函数、日期时间函数和统计函数等。

(详见附录)数值函数

函数

功能

Abs(数值表达式)

求表达式的绝对值

Int(数值表达式)

求运算结果的整数部分

Sqr(数值表达式)

计算数值表达式的平方根

Log(数值表达式)

计算数值表达式的自然对数

Sgn(数值表达式)

取数值表达式的符号值

日期函数

函数

功能

Date()

取得当前的系统日期

Year(date)

取当前日期的年值

Month(date)

取当前日期的月值

Hour(date)

取当前时间的小时值

Weekday(date)

取当前日期的星期值

Time()

取得当前的系统时间

Sec(date)

取得当前时间的秒值

字符函数

函数

功能

Left(字符表达式,数值表达式)

从左侧截取指定位数的字符串

Len(字符表达式)

求字符串的长度

Space(数值表达式)

生成指定数值的空格

Right(字符表达式,数值表达式)

从右侧截取指定位数的字符串

Ltrim(字符表达式)

去掉前导空格的字符串

Rtrim(字符表达式)

去掉尾部空格的字符串

Trim(字符表达式)

去掉首尾空格的字符串

String(数值表达式,字符表达式)

返回一个由字符表达式的首字符重复组成的指定长度为数值表达式值的字符串

统计函数

函数

功能

Sum(字符表达式)

求和

Avg(字符表达式)

求平均值

Count(字符表达式)

统计记录个数

Max(字符表达式)

求最大值

Min(字符表达式)

求最小值

3.使用数值作为查询条件

在创建查询时,经常会用数值作为查询条件。

使用数值作为查询条件的示例如下:

字段名

条件

功能

成绩

<80

查询成绩小于80分的记录

成绩

Between80And90

查询成绩在80~90分之间的记录

>=80And<=90

 

4.使用文本值作为查询条件

字段名

条件

功能

职称

“教授”

查询职称为“教授”的记录

“教授”Or“副教授”

查询职称为“教授”或“副教授”的记录

Right([职称],2)=“教授”

InStr([职称],“教授”)=1OrInStr([职称],“教授”)=2

 

姓名

In(“李明”,”王朋”)

查询姓名为“李明”或“王朋”的记录

“李明”Or”王朋”

Not“李明”

查询姓名不为“李明”的记录

Left([姓名],1)=“王”

查询姓“王”的记录

Like“王*”

InStr([姓名],“王”)=1

Len([姓名])<=2

查询姓名为两个字的记录

课程名称

Right([课程名称],2)=“概论”

查询课程名称最后两个字为“概论”的记录

学生编号

Mid([学生编号],5,2)=“03”

查询学生编号第5和第6个字符为03的记录

InStr([学生编号],“03”)=5

在查找职称为“教授”的职工,查询条件可以表示为:

=“教授”,为了输入方便,Access允许在条件中省略“=”,所以可以直接表示为:

“教授”。

输入时如果没有加双引号,Access会自动加上双引号。

5.使用计算或处理日期结果作为查询条件

字段名

条件

功能

工作

时间

Between#1992-01-01#And#1992-12-31#

查询1992年参加工作的记录

Year([工作时间])=1992

查询20天前参加工作的记录

BetweenDate()AndDate()-20

查询20天之内参加工作的记录

出生

日期

Year([出生日期])=1980

查询1980年出生的记录

工作

时间

Year([工作时间])=1999AndMonth([工作时间])=4

查询1999年4月参加工作的记录

注意:

日期常量要用英文的“#”号括起来。

6.使用字段的部分值作为查询条件

字段名

条件

功能

 

课程名称

Like”计算机*”

查询课程名称以”计算机“开头的记录

Left([课程名称],3)=“计算机”

InStr([课程名称],“计算机”)=1

Like”*计算机*”

查询课程名称中包含”计算机“的记录

姓名

Notlike”张*”

查询不姓”张“的记录

Left([姓名],1)<>“张”

注意:

在条件中,字段名必须使用方括号括起来,而且数据类型与对应字段定义的类型相符合。

7.使用空值或空字符串作为查询条件

空值是使用Null或空白来表示字段的值;空字符串是用双引号括起来的字符串,且双引号中间没有空格。

使用空值或空字符串作为查询条件的示例如下:

字段名

条件

功能

姓名

IsNull

查询姓名为Null(空值)的记录

IsNotNull

查询姓名有值(不是空值)的记录

联系电话

“”

查询没有联系电话的记录

注意:

☐在条件中字段名必须用方括号括起来。

☐数据类型必须与对应字段定义的类型相符合。

总结:

设置查询条件时注意:

1.日期型数据两边加“#”,字符型数据两边加半角双引号

2.在条件中字段名必须用方括号括起来

3.两个以上条件时,同行相与,异行相或

4.条件中引用表名时,应用方括号括起来,与字段名之间用“!

”。

如[教师档案表]!

[姓名]

3.2创建选择查询

根据指定条件,从一个或多个数据源中获取数据的查询称为选择查询。

创建创建选择查询的方法有两种:

查询向导和设计视图。

3.2.1使用查询向导

1、使用简单查询向导

使用查询向导创建查询,操作者可以在向导指示下选择一个或多个表、一个或多个字段,但不能设置查询条件。

例3-1查找“教师”表中的记录,并显示“姓名”、“性别”、“职称”和“联系电话”4个字段。

创建基于多表的查询

例3-2查询每名学生选课成绩,并显示学生编号,姓名,课程名称,成绩。

查询名称为“学生选课成绩”

注意:

1、在数据表视图显示查询结果时,字段的排列顺序与在“简单查询向导”对话框中选定字段的顺序相同。

故在选定字段时,应考虑按照字段的显示顺序选取。

2、当所建查询的数据源来自于多个表时,应建立表之间的关系。

2、使用查找重复项查询向导

例3-3判断“学生表”中是否有重名的学生

3、使用查找不匹配项查询向导

在一对多的关系中,一端显示不匹配的

例3-4查找哪些“课程”没有学生选修,并显示课程号,课程名

例3-5查找哪些“学生”没有选课

 

3.2.2使用“设计”视图

1.查询设计视图组成

在Access中,查询有5种视图:

设计视图、数据表视图、SQL视图、数据透视表视图和数据透视图视图。

在设计视图中,既可以创建不带条件的查询,也可以创建带条件的查询,还可以对已建查询进行修改。

打开查询设计视图

2、创建不带条件的查询

例3-6查询每名学生选课成绩,并显示学生编号,姓名,课程名称,成绩。

查询名称为“学生成绩查询”

3、创建带条件的查询

例3-7查询“教师表”中2000年参加工作的男教师,并显示姓名、性别、职称、工资

"男"AndYear([工作时间])="2000"

例3-8查询学生成绩不及格的和90分以上的,并显示学号,姓名,性别,成绩

3.2.3在查询中进行计算

常常对查询结果进行统计计算,如求和、计数、求最大值和平均值等。

1查询计算功能

在Access查询中,可以执行两种类型的计算,预定义计算和自定义计算。

(1)预定义计算即“总计”计算,是系统提供的用于对查询中的记录组或全部记录进行的计算,它包括总计、平均值、计数、最大值、最小值、标准偏差或方差等。

(2)自定义计算使用一个或多个字段的值进行数值、日期和文本计算。

对于自定义计算,必须直接在“设计网格”中创建新的计算字段,创建方法是将表达式输入到“设计网格”中的空字段单元格,表达式可以由多个计算组成。

例3-9利用“学生成绩”表,建立自定义查询,并显示姓名,性别,总评,综合

综合=(语文+数学+英语)*0.8+总评*0.2

2在查询中进行计算(总计查询)

总计查询是在成组的记录中完成一定计算的查询。

使用查询设计视图中的“总计”行,可以对查询中全部记录或记录组计算一个或多个字段的统计值。

例3-10统计教师人数。

例3-11统计工商管理学院学生的人数。

3分组总计查询

将记录进行分组,对每个组的值进行统计。

分组统计时,应在该字段的“总计”行上选择“分组”。

例3-12计算各类职称的教师人数。

例3-13统计学生表中各年份出生的人数。

例3-14按姓氏统计学生人数。

 

4添加计算字段

添加的新字段值是根据一个或多个表中的一个或多个字段并使用表达式计算得到,也称为计算字段。

例3-15统计年龄小于所在班级平均年龄的学生,显示其班级号、姓名、平均年龄和年龄

假设,班级号为“学生编号”中的前8位。

3.3交叉表查询

3.3.1认识交叉表查询

(1)所谓交叉表查询,就是将来源于某个表中的字段进行分组,一组列在数据表的左侧,一组列在数据表的上部,然后在数据表行与列的交叉处显示表中某个字段的各种计算值与Excel中的数据透视表一样

交叉表字段说明:

行标题——位于数据表左侧第一列。

它是指把与某一字段或记录相关的数据放入指定的一行中,以便进行概括;

列标题——位于表的顶端。

它是对某一列的字段或表进行统计,并把结果放入该列;

列中值字段——它是用户选择在交叉表中显示的字段,行与列交叉位置上的字段,用户需要为该字段指定一个总结类型,例如Sum、Avg、Min、Max函数等

3.3.2使用“交叉表查询向导”

例3-16创建一个交叉表查询,统计每专业男女生平均成绩。

专业

工商管理

77.2

环境工程

68.6

应用化学

91

例3-17创建一个交叉表查询,显示各班级每门课程的平均成绩。

(学号的前8位为班级编号)

班级编号

高等数学

计算机原理

专业英语

19991021

68

73

81

20001022

73

73

75

20011023

74

76

74

20041021

72

20051021

71

20061021

67

例3-18使用查询向导创建一个交叉表查询,显示每种产品不同规格的平均单价。

规格

灯泡

节能灯

日光灯

220V-100W

1.2

220V-150W

2.5

220V-15W

.8

220V-16W

14

220V-20W

7

220V-30W

9

220V-40W

10

220V-45W

1.1

220V-4W

6

220V-60W

1.2

220V-8W

8

6

3.4 参数查询

参数查询利用对话框,提示输入参数,并检索符合所输参数的记录。

可以创建一个参数提示的单参数查询,也可以创建多个参数提示的多参数查询。

3.4.1单参数查询

创建单参数查询,即指定一个参数。

在执行单参数查询时,输入一个参数值。

例3-13按学生姓名查找某学生的成绩,并显示“学生编号”、“姓名”、“课程名称”及“成绩”等。

运行时临时指定查询条件的查询。

该查询运行时将弹出一个对话框,提示输入查询参数(条件)。

用[条件提示信息]替代查询条件

在字段中只指定一个参数,在执行查询时,用户只需要输入一个参数查询。

3.4.2多参数查询

创建多参数查询,即指定多个参数。

在执行多参数查询时,需要依次输入多个参数值。

例3-14建立一个查询,使其显示某专业某门课的学生“姓名”和“成绩”。

就是在字段中指定多个参数,在执行查询时,用户需要输入多个参数。

根据参数查询,可以设置输入数据的条件范围,根据不同的条件查询所需数据。

注意:

条件提示信息也可以是多个。

3.5操作查询

操作查询是指仅在一个操作中更改许多记录的查询。

例如在一个操作中删除一组记录,更新一组记录等。

选择查询、交叉表查询以及参数查询,不会对原始数据进行修改;而操作查询既可以查询数据,也可以对原始数据进行修改。

  操作查询包括生成表查询、删除查询、更新查询、追加查询等。

3.5.1生成表查询

 生成表查询是利用一个或多个表中的全部或部分数据创建新表。

将查询结果生成一个新表。

例3.15将成绩在90分以上的学生的基本信息,包括学号,姓名,性别,存储到一个新表中。

3.5.2删除查询

从一个或多个表中删除指定的数据。

例3.16将student表中英语成绩不及格的记录删除。

 自动删除表中符合条件的记录;

(1)设计视图,添加数据源;

(2)设置查询类型为删除查询;

(3)字段行添加构成删除准则的字段,并指定其“删除”行值为“Where”;

(4)设置删除准则;

(5)保存。

如果删除的记录来自多个表,必须满足以下几点:

(1)在“关系”窗口中定义相关表之间的关系。

(2)在“关系”对话框中选中“实施参照完整性”复选框

(3)在“关系”对话框中选中“级联删除相关记录”复选框

3.5.3更新查询

对一个或多个表中的记录进行更新。

根据某种规则自动对表中符合条件的数据进行更新。

例、3.17将教师表中2005年之前参加工作的教师的职称改为副教授。

(1)设计视图,添加数据源;

(2)设置查询类型为更新查询;

(3)添加需要更新的字段,并在更新到行指定更新值;

(4)添加更新准则字段,并在“准则”行设置其更新准则;

(5)保存。

3.5.4追加查询

从一个或多个表中将一组记录追加到另一个或多个表中。

例3.18将选课成绩80-90分之间的学生信息添加到“90分以上学生信息”表中。

将查询结果添加到另一表尾部。

(1)设计视图,添加数据源;

(2)添加查询(所要追加的)字段;

(3)设置查询条件(所追加记录的条件)

(4)设置查询类型为追加查询,并指定追加到的表;

(5)保存。

注意:

所要追加的字段可以来源于多个表  或是计算字段,但必须是目标表中  已经存在的字段。

注意:

无论哪一种操作查询,都可以在一个操作中更改许多记录,并且在执行操作查询后,不能撤消刚刚做过的更改操作。

因此在执行操作查询之前,最好单击工具栏上的“视图”按钮,预览即将更改的记录。

另外,在使用操作查询之前,应该备份数据。

3.6创建SQL查询

3.6.1查询与SQL视图

在Access中,一个查询都对应着一个SQL语句,查询对象的实质是一条SQL语句。

当使用设计视图建立一个查询时,Access在后台就会构造一个等价的SQL语句。

打开SQL视图的方法是:

先打开查询设计视图,然后选择“视图”菜单中的SQL视图命令,或单击工具栏中的视图按钮右侧的向下箭头按钮,从下拉列表中选择”SQL视图选项。

3.6.2SQL语言简介

SQL(StructuredQueryLanguage,结构化查询语言)是数据库领域中应用最为广泛的数据库查询语言。

SQL的特点:

SQL是一种一体化语言,包括数据定义、数据查询、数据操纵和数据控制等方面的功能,可以完成数据库活动中的全部工作。

SQL是一种高度非过程化语言,只需描述“做什么”,不需说明“怎么做”。

SQL是一种非常简单的语言,他所使用的语句很接近于自然语言,易于学习和掌握。

SQL是一个共享语言,全面支持客户机/服务器结构。

SQL语句完成数据定义、数据查询、数据操纵和数据控制的核心功能只用9个动词

SQL语句的功能包括:

查询、操纵、定义和控制。

SQL功能

动词

SQL功能

动词

数据定义

CREATE,DROP,ALTER

数据查询

SELECT

数据操作

INSTER,UPDATE,DELETE

数据控制

CRANT,REVOTE

1.CREATE语句

格式:

CREATETABLE<表名>

(<字段名1><数据类型>[列完整性约束条件],

[<字段名2><数据类型>[列完整性约束条件]]……)

符号描述:

<>表示在实际的语句中要采用实际需要的内容进行替代

[]表示可以根据需要进行选择,也可以不选

|表示多项选项只能选择其中之一

{}表示必选项

例3.19建立一个“雇员”表,包括雇员号、姓名、性别、出生日期、部门,备注字段。

CREATETABLE雇员

(雇员号SMALLINTPrimaryKey,

姓名CHAR(4)NotNull,

性别CHAR

(1),

出生日期DATE,

部门CHAR(20),

备注MEMO

);

2.ALTER语句

使用ALTERTABLE语句修改已建表的结构

格式:

ALTERTABLE<表名>

[ADD<新字段名><数据类型>[字段级完整性约束条件]]

[DROP[<字段名>]…….]

[ALTER<字段名><数据类型>]

其中,<表名>是指需要修改的表的名字,

ADD子句用于增加新字段和该字段的完整性约束条件

DROP子句用于删除指定的字段

ALTER子句用于修改原有字段属性。

例3.20在“雇员”表中增加一个字段,字段名为“职务”,数据类型为“文本”;将“备注”字段删除;将“雇员号”字段的数据类型改为文本型,字段大小为8。

(1)添加新字段的SQL语句为:

ALTERTABLE雇员ADD职务CHAR(10);

(2)删除“备注”字段的SQL语句为:

ALTERTABLE雇员DROP备注;

(3)修改“雇员号”字段属性的SQL语句为:

ALTERTABLE雇员ALTER雇员号CHAR(8);

3.DROP语句

DROPTABLE语句删除表

格式:

DROPTABLE<表名>

例3.21删除已建立的“雇员”表

DROPTABLE雇员;

4.INSERT语句

格式:

INSERTINTO<表名>[(<属性名1>[,<属性名2>…])]

VALUES(<常量1>)[,<常量2>]…);

例3.22将一条新记录插入到“雇员”表中

INSERTINTO雇员VALUES("0001","张磊","男",#1960-1-1#,"办公室","济南");

例3.23将一条新记录插入到“雇员”表中,其中“雇员号”为“0002”,“姓名”为“王宏”,“性别”为“男”

INSERTINTO雇员(雇员号,姓名,性别)VALUES("0002","王宏","男");

注意:

文本数据应用双引号括起来。

日期数据应用“#”号括起来。

5.UPDATE语句

UPDATE语句实现数据的更新功能,能够对指定表所有记录或满足条件的记录进行更新操作。

该语句的格式为:

格式:

UPDATE<表名>

SET<列

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2