《Access数据库教程》课件第6章_第1页
《Access数据库教程》课件第6章_第2页
《Access数据库教程》课件第6章_第3页
《Access数据库教程》课件第6章_第4页
《Access数据库教程》课件第6章_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.1查询概述6.2简单查询的创建与运行

6.3查询的准则

6.1.1查询的功能

具体而言,查询具有以下功能:

(1)选择数据,包括选择字段和选择记录两方面。利用查询既可以只选择一个表的某几个字段,也可以选择来自多个表的字段,并能通过指定记录所需满足的条件,将当前不需要的数据排除在查询之外,从而使用户将注意力集中在感兴趣的数据上。例如,仅查找“学生”表的“学号”、“姓名”、“性别”三个字段的内容。6.1查询概述

(2)分析与计算。 查询不仅可以选择数据, 还可以对数据表中的数据进行各种统计计算,如计算某个学生或某门课程的平均成绩。通过将经常处理的原始数据及统计计算定义为查询,可以大大简化数据的处理工作。用户不必每次都在原始数据上进行检索,从而提高了整个数据库的性能。

(3)编辑记录。利用Access查询的操作功能可以根据指定的规则在数据表中编辑记录、删除记录、添加新记录,并能将查询结果以数据表的形式保存起来。例如,可以利用查询方便地将已毕业的学生信息保存到一个新表中,然后在“学生”表中删除已毕业学生的信息。

(4)为窗体、报表或数据访问页提供数据。因为查询是经过处理的数据集合,因而适合作为数据源,通过窗体、报表或数据访问页提供给用户。例如,为了在窗体中显示来自多个表的数据,可以先建立能检索出所需数据的查询,然后将该查询作为窗体的数据源。每次打开窗体时,该查询就自动从基表中检索出符合要求的最新数据,从而提高了窗体的使用效果。6.1.2查询的类型

Access为用户提供了五种类型的查询,分别是选择查询、参数查询、交叉表查询、操作查询、SQL查询,下面逐一介绍。

1.选择查询

选择查询是最常见的查询类型,它按照规则从一个或多个表,或其他查询中检索数据,并按照所需的排列顺序显示出来。

2.参数查询

参数查询可以在执行时显示对话框以提示用户输入信息,它不是一种独立的查询,只是在其他查询中设置了可变化的参数。

3.交叉表查询

使用交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。

4.操作查询

使用操作查询只需进行一次操作,就可对许多记录进行更改和移动。四种操作查询如下所示。

(1)删除查询:可以从一个或多个表中删除一组记录。例如,可以使用删除查询来删除所有毕业学生的记录。使用删除查询,通常会删除整个记录,而不只是记录中所选择的字段。

(2)更新查询:可以对一个或多个表中的一组记录做全局的更改。例如,可以将所有学生的“英语专业课”表中“精读”全部增加10点,或将某一工作类别的人员的工资提高5个百分点。使用更新查询,可以更改已有表中的数据。

(3)追加查询:可以将一个或多个表中的一组记录添加到一个或多个表的末尾。例如,假设用户获得了一些新的客户以及包含这些客户信息的数据表,若要避免在自己的数据库中键入所有这些信息的麻烦,最好将其追加到“客户”表中。

(4)生成表查询:可以根据一个或多个表中的全部或部分数据新建表。生成表查询有助于创建表以导出到其他数据库中。

5. SQL查询

SQL(StructureQueryLanguage)是一种结构化查询语言,是数据库操作的工业化标准语言。可以使用SQL来查询、更新和管理任何数据库系统。用户在设计视图中创建查询时,Access将在后台构造等效的SQL语句。有些SQL查询只能在SQL视图中创建,称为“特定查询”,有如下几种。

(1)传递查询:该查询可以直接向ODBC数据库服务器发送命令。

(2)联合查询:该查询可使用Union运算符来合并两个或更多选择查询结果。

(3)数据定义查询:利用数据定义语言(DDL)语句来创建或更改数据库中的对象。

(4)子查询:包含SQL查询语句的查询。如果在一个查询中要使用另一查询的查询结果,可以在查询设计网格的“字段”单元格中输入SQL查询语句来定义新字段,或在“准则”单元格中定义包含SQL查询语句的准则。6.1.3查询视图

当打开一个查询以后,Access窗口的主工具栏就会发生变化,其中在工具栏的最左侧有一个【视图】按钮,单击该按钮后,出现一个用于各种视图切换的下拉列表框,如图6-1所示。

从图中可以看出,Access2003中查询具有五种视图,分别是“设计视图”、“数据表视图”、“SQL视图”、“数据透视表视图”和“数据透视图视图”,其中“数据透视图视图”是Access2003中新增加的视图。图6-1五种查询视图

(1)设计视图:也叫查询设计器,显示数据库对象(包括表、查询、窗体、宏和数据访问页)的设计窗口。在设计视图中,可以新建数据库对象和修改现有数据库对象的设计。通过该视图可以设计除SQL查询之外的任何类型的查询。

(2)数据表视图:查询的数据浏览器,以行列格式显示来自表、窗体、查询、视图或存储过程的窗口,通过该视图可以查看查询运行的结果。在数据表视图中,可以编辑字段、添加和删除数据以及搜索数据。

(3)数据透视表视图:用于汇总并分析数据表或窗体中数据的视图。可以通过拖拽字段和项,或通过显示和隐藏字段的下拉列表中的项,来查看不同级别的详细信息或指定

布局。

(4)数据透视图视图:用于显示数据表或窗体中数据的图形分析的视图。可以通过拖拽字段和项,或通过显示和隐藏字段的下拉列表中的项,来查看不同级别的详细信息或指定布局。

(5) SQL视图:是用SQL语法规范显示查询,即显示查询的SQL语句。6.2.1使用向导创建查询

创建查询的种类有两种:一种是利用查询向导创建查询,包括简单查询向导、交叉表查询向导、查找重复项查询向导和查找不匹配项查询向导;另一种是利用查询设计创建查询,使用该方法可以创建选择查询、参数查询、交叉表查询和操作查询等。首先介绍使用向导创建查询,在第7章介绍利用查询设计创建查询的方法。6.2简单查询的创建与运行

1.简单查询向导

使用简单查询向导创建查询可以将一个或多个表或查询中的字段检索出来,还可以根据需要对检索的数据进行统计运算。

【例6-1】查询“基础篇-学生成绩管理系统”中学生的基本信息和相应课程的成绩。其具体操作如下:

(1)打开“基础篇-学生成绩管理系统”数据库,单击“对象”中的“查询”,弹出“新建查询”对话框,如图6-2所示。

(2)选择“简单查询向导”,单击【确定】按钮,此时打开“简单查询向导”对话框,如图6-3所示。图6-2“新建查询”对话框

图6-3“简单查询向导”对话框

(3)在“可用字段”列表框中选择“学号”选项,然后单击钮,将“学号”选项添加到“选定的字段”列表框中,如图6-4所示。

(4)使用同样的方法将“可用字段”列表框中的“姓名”添加到“选定的字段”列表框中,如图6-5所示。

(5)在“表/查询”下拉列表框中选择“英语表成绩”表,依次将“泛读”、“精读”两字段添加到“选定的字段”列表框中,如图6-6所示。

(6)单击【下一步】按钮,此时“简单查询向导”对话框提示选择明细查询还是汇总查询,选用默认的“明细”选项,如图6-7所示。图6-4选定“学号”字段

图6-5选定“姓名”字段图6-6添加“泛读”、“精读”选项

图6-7选用“明细”选项

(7)单击【下一步】按钮,指定查询标题和打开方式,在此使用默认值,如图6-8所示。

(8)单击【下一步】按钮。此时打开“学生查询”视图窗口,如图6-9所示。

(9)在数据库窗口的查询对象中增加了“学生查询”,如图6-10所示。图6-8指定查询标题和打开方式图6-9“学生查询”视图窗口

图6-10查询对象

2.交叉表查询向导

使用交叉表查询可以将查询的字段分成两组:一组是以列标题的形式显示在表的顶端;一组是以行标题的形式显示在表的最左侧。用户可以在行列交叉的位置对数据进行汇总、求平均值或其他统计运算,并将结果显示在行列的交叉处。【例6-2】使用交叉表查询向导创建学生成绩的查询。

其具体操作如下:

(1)打开“基础篇-学生成绩管理系统”数据库,单击“对象”中的“查询”,单击【新建】按钮,弹出“新建查询”对话框,在该对话框中选择“交叉表查询向导”选项,单击【确定】按钮,打开“交叉表查询向导”对话框,如图6-11所示。

(2)单击【下一步】按钮,弹出如图6-12所示的对话框,此时对话框提示指定字段行标题,在“可用字段”列表框中选择“学号”选项,然后单击【下一步】按钮,则就将“学号”选项添加到“选定字段”列表框中了。图6-11“交叉表查询向导”对话框

图6-12指定字段行标题

(3)单击【下一步】按钮,此时对话框提示指定字段列标题,在右侧的列表框中选择【课程编码】选项,如图6-13所示。

(4)单击【下一步】按钮,此时对话框提示指定交叉点计算的数字,在“字段”列表框中选择“成绩”选项,在“函数”列表框中选择“求和”选项,取消“是,包含各项小记(Y)”复选框,如图6-14所示。

图6-13指定字段列标题图6-14确定交叉点计算数字

(5)单击【下一步】按钮,出现指定查询标题和打开方式信息,使用默认值,如图6-15所示,单击【完成】按钮,此时打开“公共课成绩_交叉”视图窗口,如图6-16所示。

图6-15指定查询名称

图6-16“公共课成绩_交叉”视图窗口

3.使用标签向导创建报表

标签实际上是一种多列报表,常常把一条记录的各个字段分行排列,因此制作标签一般都是使用多列的方法。

【例6-3】创建标签向导。

具体操作步骤如下:

(1)在数据库窗口中选择报表,单击工具栏上的【新建】按钮,调出“新建报表”对话框,选择“标签向导”选项,在下面的数据来源下拉列表框中选择“学生”表,如图6-17所示。

(2)单击【确定】按钮,调出“标签向导”对话框之一,如图6-18所示,从中选择标签的型号、尺寸和生产厂商,这里选择“Avery”厂商和“C6101”型号的标签。图6-17选择“标签向导”

图6-18选择标签型号

(3)单击【下一步】按钮,调出“请选择文本的字体和颜色”对话框,如图6-19所示。在该对话框中,可对文本外观的字体、字号、粗细及颜色进行设置。

(4)单击【下一步】按钮,调出“请确定邮件标签的显示内容”对话框,如图6-20所示。在“标签向导”对话框中确定标签的显示内容。

图6-19“选择文本的字体和颜色”对话框

图6-20确定邮件标签内容

(5)单击【下一步】按钮,调出“按字段排序”对话框,如图6-21所示。在“标签向导”对话框中,可以选择一个或多个字段对标签进行排序。

(6)单击【下一步】按钮,调出“标签向导”对话框之五,如图6-22所示。在“标签向导”对话框中输入报表的名称,同时选择“查看标签的打印预览”,显示运行结果,如图6-23所示。图6-21“按字段排序”对话框

图6-22输入标签名对话框图6-23运行结果6.2.2运行查询

在查询设计器中,利用工具栏中的运行按钮运行查询,或选择【查询】→【运行】命令运行查询。

在“数据库”窗口中运行查询的方法有以下三种:

(1)在数据库窗口直接双击查询对象,即进入查询的数据表视图,其形式与表的数据表视图完全相同,不同的是查询视图中显示的是一个动态数据集。

(2)在数据库窗口对象列表下选中查询,再单击【打开】按钮,即可打开选中的查询运行。

(3)利用宏运行查询。6.3.1运算符及通配符

1.运算符

1)算术运算符

算术运算符用来进行算术运算,算术运算符及其优先级的含义如表6-1所示。6.3查 询 的 准 则表6-1算术运算符及其优先级

2)联接运算符

联接运算符具有联接两个或多个字符串(即文本型数据)的功能,在Access中,有“+”和“&”两个联接运算符。“+”将两个字符串联接成一个新字符串,只能在两个表达式均为字符串数据时使用;而“&”用来强制两个表达式做字符串联接。

“+”和“&”的优先级相同,但低于所有算术运算符的优先级。

【例6-4】联接运算。

“2*3”+“=”+“(2*3)”出错,类型不匹配

“2*3”&“=”&“(2*3)”

运算结果为:2*3=6

3)逻辑运算符

逻辑运算符除包括常见的“>”、“<”、“=”等外,还包括以下几个:

(1) And:逻辑并,两个条件同时满足。

(2) Or:逻辑或,两个条件满足一个即可。

(3) Not:逻辑否,不属于表达式范围。

4)特殊运算符

(1) Like:用来指定字符串的样式。如:like“李*”,指姓李的名字。

(2) In:指定一系列值的列表。如:In(“山东”,“浙江”,“安徽”)。

(3) Betweena1anda2:指位于a1和a2之间的值(包括端值),如:Between75and90是指75~90之间的数据。

(4) Null:字段不包括任何数据,为空值。

2.通配符

(1) ?:代表任意一个字符。

(2) *:代表任意字符串(0或多个字符)。

(3) #:代表单一数字。

(4)[字符表]:字符表中的单一字符。

(5)[!字符表]:不在字符表中的单一字符。

例:Likec*?:表示以字符C开头的字符串。

Likep[b-g]###:表示以字母p开头,后根b~g之间的1个字母和3个数字的字符串。

Likef?[!6-10]*:表示第1个为字符f,第2个为任意字符,第3个为非6~10的任意字符,其后为任意字符的字符串。6.3.2常用函数

Access提供了大量的标准函数,如数值函数、字符函数、日期时间函数和统计函数等。下面给出一些常用的函数,以方便读者查询。

1.数值函数

数值函数用于数值运算,其自变量与函数都是数值型数据。

1)取绝对值函数Abs()

格式:Abs(<nExp>)

功能:计算nExp的值,并返回该值的绝对值。

如:Abs(-10)=10

2)平方根函数Sqrt()

格式:Sqrt(<nExp>)

功能:求非负nExp的平方根。

如:Sqrt(16)=4

3)四舍五入函数Round()

格式:Round(<nExp1>,<nExp2>)

功能:返回nExp1四舍五入的值,nExp2表示保留的小数位数。

如:Round(3.14159,2)=3.14

4)取整函数Int()

格式:INT(<nExp>)

功能:计算nExp的值,返回该值的整数部分。

如:Int(36.29)=36

2.字符函数

1)空格函数Space()

格式:Space(<nExp>)

功能:返回一个包含nExp个空格的字符串。

如:Space(8)=""

2)取左子串函数Left()

格式:Left(<cExp>,<nExp>)

功能:返回从cExp串中第一个字符开始,截取nExp个字符的子串。

如:Left(“infomation”,4)=“info”

3)取右子串函数Right()

格式:Right(<cExp>,<nExp>)

功能:返回从cExp串中右边第一个字符开始,截取nExp个字符的子串。有关说明同Left()函数。

如:Right("infomation",4)="tion"

4)字符串长度函数Len()

格式:Len(<cExp>)

功能:返回cExp串的字符数(长度),函数值为N型。

如:Len(“计算机”)=3

5)取子串函数Mid()

格式:Mid(<cExp>,<nExp1>[,<nExp2>])

功能:返回从串cExp中第nExp1个字符开始,截取nExp2个字符的子串。

如:Mid("infomation",5,2)="ma"

6)删除字符串前导空格函数LTrim()

格式:LTrim(<cExp>)

功能:删除cExp串的前导空格字符。

如:LTrim(“tree”)=“tree”

7)删除字符串尾部空格函数RTrim()|Trim()

格式:RTrim|Trim(<cExp>)

功能:删除cExp串尾部空格字符。

如:RTrim("tree")="tree"

8)删除前导和尾部空格函数Trim()

格式:Trim(<cExp>)

功能:删除cExp串前导和尾部空格字符。

如:Trim(“tree”)=“tree”

9)求子串位置函数InStr()

格式:InStr(<nExp1>,<cExp1>,<cExp2>[,<nExp2>])

功能:求子串<cExp2>在字符表达式<ncxp1>中出现的位置。如果省略“起始位置”<nExp1>,则从头开始查找。常用的比较方法<nExp2>有0和1。O为区分大小写,1为不区分大小写。

【例6-5】求子串位置函数。

InStr(1,“XpXPXpXP”,“P”,0)=4

InStr(5,“XpXPXpXP”,“P”,0)=8

Instr(1,“XpXPXpXP”,“P”,1)=2

InStr(5,‘XpXPXpXP’,“P”,1)=6

InStr(“XpXPXpXP”,“P”)=2

InStr(“XpXPXpXP”,“p”)=2

10)大小写转换函数

(1)小写转大写Ucase()。

格式:Ucase(<cExp>)

功能:将字符表达式<cExp>中的小写字母转换为大写字母。

(2)大写转小写Lcase()。

格式:Lcase(<cExp>)

功能:将字符表达式<cExp>中的大写字母转换为小写字母。

【例如】Ucase(A)=“ACCESS”

Lcase(Access)=“access”

3.日期时间函数

日期时间函数是处理日期型或日期时间型数据的函数。其自变量为日期型表达式dExp或日期时间型表达式tExp。

1)获取系统日期和时间函数

(1)系统日期函数Date()。

格式:Date()

功能:返回当前系统日期,此日期由Windows系统设置。函数值为D型。

(2)日期时间函数。

格式:Now()

功能:返回当前系统的日期和时间。

(3)时间函数。

格式:Time()

功能:返回当前系统时间。

2)截取日期/时间分量函数

(1)年份函数Year()。

格式:Year(<dExp>)

功能:函数返回dExp式中的年份值,函数值为N型。

(2)月份函数Month()。

格式:Month(<dExp>)

功能:返回dExp式中的月份数,函数值为N型。

(3)日期函数Day()。

格式:Day(<dExp>)

功能:返回dExp式中的天数,函数值为N型。

(4)小时函数。

格式:Hour(<dExp>)

功能:返回日期表达式<dExp>中的小时,结果为数字型。

(5)分钟函数。

格式:Minute(<dExp>)

功能:返回日期表达式<dExp>中的分钟,结果为数字型。

(6)秒函数。

格式:Second(<dExp>)

功能:返回日期表达式<dExp>中的秒,结果为数字型。

【例6-6】日期/时间函数(假定运行函数的时间为2007年8月9日10时11分12秒)。

Date()=#2007-08-09#

Time()=10:11:12

Now()=2007-08-0910:11:12

Year(Date())=2007,Month(Date())=8,Day(Now())=9

Hour(Time())=10,Minute(Time())=11,Second(Now())=12

4.其他函数

Access还提供了其他类型的函数以实现数据的统计、检索等计算。

1)条件函数

格式:IIf(<条件表达式>,<条件为真时的返回值>,<条件为假时的返回值>)

功能:根据条件表达式决定返回的值。

【例6-7】根据“在职否”(是/否型)返

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论