第三章创建查询_第1页
第三章创建查询_第2页
第三章创建查询_第3页
第三章创建查询_第4页
第三章创建查询_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章第三章 使用查询使用查询第一节第一节 查询的概述查询的概述查询概述 在Access 2010 数据库中,表是存储数据的最基本的数据库对象,而查询则是对表中的数据进行检索、统计、分析、查看和更改的又一个非常重要的数据库对象。一、查询的概念一、查询的概念 查询是根据一定的条件,从一个或多个表或查询中提取数据并进行加工处理,返回一个新的数据集合,以方便对数据进行查看和分析。 查询是一张“虚表”,是临时的动态的数据的集合。当关闭查询的数据表视图时,保存的是查询的结构,并不是保存查询结果的动态数据表。 建立查询之前,一定要先建立表与表之间的关系。建立查询之前,一定要先建立表与表之间的关系。二、查询

2、的功能二、查询的功能 查询主要有如下几个方面的功能: (1)选择字段选择字段:选择表中的部分字段生成所需的表或多个数据集。在查询结果中可以只含有表中的部分字段。 (2)选择记录选择记录:根据指定的条件查找所需的记录,并显示查找的记录。在查询的结果中,只含有符合指定条件的记录。 (3)编辑记录编辑记录:即利用查询添加、修改和删除表中的记录。(更新查询、删除查询) (4)实现计算实现计算:查询满足条件的记录,还可以在建立查询过程中进行各种计算。(计算平均成绩,年龄等)即在查询中进行各种统计计算,也可以建立一个计算字段来保存计算的结果。 (5)建立新表建立新表:操作查询中的生成表查询可以建立新表。即

3、利用查询的结果创建一个新表。 (6)为报表或窗体提供数据为报表或窗体提供数据:即以查询的结果可以作为建立报表、窗体和查询的数据源。三、查询的分类三、查询的分类 根据对数据源的操作方式及查询结果的不同,access 2010提供的查询可以分为5种类型,分别是选择查询、交叉表查询、操作查询、SQL查询、参数查询 。1 1、选择查询、选择查询 是根据指定的条件,从一个或多个表中获取数据并在“数据表视图”中显示结果。 选择查询可以对记录进行分组,并且对分组的记录进行求和、计数、求平均值以及其它类型的计算。 选择查询产生的结果是一个动态的记录集,不会改变源数据表中的数据。例:在“学生管理系统”数据库的“

4、学生”表里,查找出1986年后(出生的女学生的姓名、性别和出生日期。使用查询的“设计视图”创建出该查询,其设计视图如图所示。当运行该查询时,以“数据表视图”方式显示出该查询的结果,如图所示。设计视图查询结果2 2、交叉表查询、交叉表查询 使用交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。交叉表查询可以对记录作合计、平均值、计数等计算,这种数据可分为两组信息:一类在数据表左侧排列,另一类在数据表的顶端。例如:在“学生管理系统 ”数据库的“学生表”中,统计出各班男、女生总人数,利用交叉表查询结果为:3 3、操作查询、操作查询 操作查询是这样一种查询,使用这种查询只需进行一次操

5、作就可以对许多记录进行更改和移动。有如下四种操作查询:更新查询更新查询 对一个或多个表中的一组符合条件的记录进行批量修改某字段的值。删除查询删除查询 从一个或多个表中删除一组符合条件的记录。追加查询追加查询 将一个或多个表中的一组符合条件的记录添加到另一个表的末尾。生成表查询生成表查询 将查询的结果转存为新表。4 4、SQLSQL查询查询 SQL查询是用户使用SQL语句创建的查询。可以用结构化查询语言(SQL)来查询、更新和管理Access这样的关系数据库。在查询的“设计视图”中创建查询时,Access将在后台构造等效的SQL语句。SQL查询主要包括:查询主要包括:联合查询联合查询 联合查询是

6、将多个表或查询中的字段合并到查询结果的一个字段中。 使用联合查询可以合并多个表中的数据,并可以根据联合查询生成一个新表。传递查询传递查询 传递查询可以直接将命令发送到ODBC数据库服务器中,而不需要事先建立链接。 利用传递查询可以直接使用其它数据库管理系统中的表。数据定义查询数据定义查询 利用数据定义查询可以创建、删除或更改表,或者在数据库表中创建索引。子查询子查询 是包含在另一个查询之内的SQL-SELECT语句,即嵌套在查询中的查询。5 5、参数查询、参数查询 参数查询是一种交互式查询,即利用对话框提示用户输入查询条件后查询满足条件的记录。第二节第二节 创建选择查询创建选择查询 一、利用查

7、询向导创建查询一、利用查询向导创建查询 可以使用查询向导创建查询,常用的查询向导有: 简单查询向导; 交叉表查询向导; 查找重复项查询向导; 查找不匹配项查询向导。1、使用简单查询向导(、使用简单查询向导(P65) 使用查询向导创建查询,可以在向导指示下选择一个或多个表、一个或多个字段,但不能设置查询条件。 简单查询向导是用的最广泛的一种查询向导,用于将一个或多个表中的数据按照指定的条件进行检索和筛选,还可以进行汇总计算。注意:注意: 1、在数据表视图显示查询结果时,字段的排列顺序与在“简单查询向导”对话框中选定字段的顺序相同。故在选定字段时,应考虑按照字段的显示顺序选取。 2、当所建查询的数

8、据源来自于多个表时,应建立表之间的关系。二、交叉表查询向导二、交叉表查询向导(P66P66) 交叉表査询是将来源于某个表中的字段进行分组,一组列在交叉表左侧,一组列在交叉表上部,并在交叉表行与列交叉处显示表中某个字段的各种计算值。 在创建交叉表查询时,需要指定3种字段:一是放在交叉表最左端的行标题行标题,它将某一字段的相关数据放入指定的行中;二是放在交叉表最上面的列标题列标题,它将某一字段的相关数据放入指定的列中;三是放在交叉表行与列交叉位置上的字段,需要为该字段指定一个总计项总计项,如总计、平均值、计数等。在交叉表查询中,只能指定一个列字段和一个总计类型的字段。 交叉表查询是以行和列的字段作

9、为标题和条件选取数据,并在行与列的交叉处对数据进行汇总和统计计算。 设计交叉表查询需要字义3种字段: 处于数据表最左端的行标题字段行标题字段 把某一字段或相关数据放入指定的一行中。 处于数据表最上边的列标题字段列标题字段 对每一列指定的字段进行统计,并将统计结果放在该列。 处于行和列交叉位置的值字段值字段 可以为该字段指定总计项。在交叉表查询中:在交叉表查询中: 只能指定一个列字段和一个总计类型的字段。只能指定一个列字段和一个总计类型的字段。 可以通过设置一个或多个行标题,创建多级交叉表查询。可以通过设置一个或多个行标题,创建多级交叉表查询。 交叉表查询向导的数据源只能来自于一张表或查询。若来

10、自多个表,可先建立一个查询,而后以此查询作为数据源使用向导创建,或者直接在设计视图下创建。 行标题最多3个,列标题1个,值字段1个。三三、查、查找重复项查询找重复项查询向导向导(P68P68) 根据“查找重复项”查询的结果,可以确定在表中是否有重复的记录,或记录在表中是否共享相同的值。 例如,可以搜索“姓名”字段中的重复值来确定同名学生是否为重复记录。四四、查、查找不匹配项查询找不匹配项查询向导向导(P69P69) 查找不匹配项查询的作用是供用户在一个表中找出另一个表中所没有的相关记录。在具有一对多关系的两个数据表中,对于“一”方的表中的每一条记录,在“多”方的表中可能有一条或多条甚至没有记录

11、与之对应,使用不匹配项查询向导,就可以查找出那些在“多”方中没有对应记录的“一”方数据表中的记录。 二、利用查询设计器创建选择查询(二、利用查询设计器创建选择查询(P71) 对于简单的查询,使用向导比较方便,但是对于有条件的查询,则无法使用向导来创建,而是需要在“条件视图”中创建。 使用查询设计器创建选择查询有三个要点:1 1、确定查询数据源、确定查询数据源2 2、指定查询输出字段、指定查询输出字段3 3、设置查询准则、设置查询准则 这为用户查询提供了更大的自由度,但同时也增加了难度,其中的关键是如何设置查询准则。 查询设计器是一个设计查询的窗口,包含了创建查询所需要的各个组件。用户只需在各个

12、组件中设置一定的内容就可以创建一个查询。 查询设计窗口分为上下两部分,上部为表查询的字段列表,显示添加到查询中的数据表或查询的字段列表;下部为查询的设计网格区,定义查询的字段,并将表达式作为条件,限制查询的结果;中间是可以调节的分隔线;标题栏显示查询的名称,如图3-13所示(P71)。用户只需要在各个组件中设置一定的内容就可以创建一个查询。 在查询设计网格中,可以详细设置查询的内容,具体内容的功能如下: (1)字段:字段:查询所需要的字段。每个查询至少包括一个字段,也可以包含多个字段。如果与字段对应的“显示” 复选框被选中,则表示该字段将显示在查询的结果中。 (2)表:表:指定查询的数据来源表

13、或其他查询。 (3)排序:排序:指定查询的结果是否进行排序。排序方式 包括“升序”、“降序”和“不排序”三种。 (4)条件:条件:指定用户用于查询的条件或要求。(5)或:或:用来提供多个查询条件。 在条件构建时,如果对多个字段进行条件设置,如果各字段间的条件关系是与的关系,条件放在同一行;或关系,条件放在不同行。 条件是指在查询中用来限制检索记录的条件表达式,它是符、常量、函数和字段名称等的任意组合,计算结果为单个值。通过条件可以过滤掉很多不需要的数据。 单个的常量、字段或函数可以看作表达式的特例。查询条件查询条件1. 1. 运算符运算符 运算符是构成查询条件的基本元素,运算符包括关系运算符、

14、逻辑运算符和一些特殊的运算符。运算符运算符功能功能举例举例含义含义= =等于等于 “犀利哥犀利哥”等于等于“犀利哥犀利哥” 小于小于 100 大于大于 80 80大于大于8080=小于等于小于等于 =90=大于等于大于等于 =99991 11#1#9999年年1 1月月1 1日以后出日以后出生生不等于不等于 1818不等于不等于1818(1)(1)关系运算符关系运算符(2)(2)逻辑运算符逻辑运算符运算符运算符功能功能举例举例含义含义AndAnd逻辑逻辑与与“团员团员” And And “男男”是男生团员的是男生团员的OrOr逻辑逻辑或或“团员团员” Or Or “男男”是男生或是团员任是男生

15、或是团员任意一个意一个 NotNot逻辑逻辑非非Not Not “团员团员”不是团员的不是团员的(3)(3)特殊运算符特殊运算符运算符运算符功能功能举例举例含义含义BetweenBetween决定一个数值是否在一决定一个数值是否在一个指定值得范围内个指定值得范围内BetweenBetween 1 And 101 And 10在在1 1到到1010之间之间InIn决定一个字符串是否是决定一个字符串是否是一列表值的成员一列表值的成员In(In(“团员团员”,“男男”) )是是“团员团员”或是男生中或是男生中的任意一个的任意一个IsIs与与NullNull一起使用,以决一起使用,以决定一个值是否是定

16、一个值是否是NullNull或或Not Null Not Null Is Null Is Null Is Not NullIs Not Null表示该字段无数据表示该字段无数据该字段有数据该字段有数据LikeLike决定一个字符串是否以决定一个字符串是否以一个或更多字符开始,一个或更多字符开始,需要通配符需要通配符“* *”号或号或“?”号以使号以使LikeLike运算运算符正确的使用。符正确的使用。Like Like “a a* *”Like Like “File?File?”以以“a a”开头的字符串开头的字符串以以FileFile开头,后开头,后3 3位为任位为任意的字符意的字符(专用文

17、本或备注数据(专用文本或备注数据类型)类型)通配符功能举例*表示任何数目的字符,可以用在字符串的任何地方Wh*,可以通配What,When,While等*at可以通配cat,bat,what等?表示任何单个字符或单个汉字B?ll可以通配Ball,Bell,Bill等#表示任何一位数字1#3可以通配103,113,123等 表示括号内的任何单一字符Baell可以通配Ball,Bell,但不包括Bill!表示任何不在这个列表内的单一字符B! aell可以通配Bill,Bull等,但不包括Ball,Bell-表示在一个以递增顺序范围内的任何一个字符Ba-ed可以通配Bad,Bbd,Bcd,Bed通配

18、符通配符2. 2. 函数函数 Access系统提供了大量的标准函数,为用户更好地管理和维护数据库提供了极大的便利。(1)(1)数值函数数值函数绝对值函数绝对值函数格式:Abs(Abs(数值表达式数值表达式) )功能:求“数值表达式”值的绝对值。 如果“数值表达式”的值是Null值,则函数值是Null值。如果“数值表达式”是一个未初始化的量,则函数值是0。举例:Abs(-42)和Abs(42)的值都是42 Abs(9-12)的值是3 Abs(null)的值是? x未赋值,Abs(x)的值是?取整函数取整函数 格式: IntInt( (数值表达式数值表达式) ) 功能:取“数值表达式”值的整数部分

19、值。 说明:当“数值表达式”是正数时,返回“数值表达式”值的整数部分(不四舍五人)。 当“数值表达式”的值是负数时,返回小于或等于“数值表达式”值的第一个负整数。 举例: Int(998) 返回99。 Int(-998) 返回-100。 Int(-992) 返回-100。求平方根函数求平方根函数格式:SqrSqr( (数值表达式数值表达式) )功能:计算“数值表达式”值的平方根值。说明:要求“数值表达式”的值大于或等于0。举例:Sqr(4) 返回2。 Sqr(0) 返回0。符号函数符号函数格式:SgnSgn()功能:返回“数值表达式”值的符号值。说明:当“数值表达式”值大于0,函数返回1。当“

20、数值表达式”值等于0,函数返回0。当“数值表达式”值小于0,函数返回-1。举例:Sgn(12) 返回 1。 Sgn(-2.4) 返回-1。 Sgn(0) 返回0(2)(2)字符函数字符函数 空字符串函数空字符串函数 格式:Space(Space(数值表达式数值表达式) )功能:返回由“数值表达式”的值确定的空格个数组成的字符串。举例:Space(5)返回一个由5个空格组成的字符串“ ”。重复字符串函数重复字符串函数 格式:String(String(数值表达式,字符串表达式数值表达式,字符串表达式) )功能:返回一个由“字符表达式”的第1个字符重复组成的指定长度为“数值表达式”值的字符串。说明

21、:如果与二者有一个是Null,则函数值为Null。举例:String(5,“*”) 返回“*”。 String(4,“ABC) 返回AAAA截取左子串函数截取左子串函数格式:Left(Left(字符串表达式,数值表达式字符串表达式,数值表达式) )功能:从“字符串表达式”左侧第1个字符开始,截取“数值表达式”值个字符。说明: 当“字符串表达式”是Null时,函数值是Null值。当“数值表达式”值为0时,函数值是一个空串(即:“”)。 当“数值表达式”值大于或等于“字符串表达式”的字符数时,则返回“字符串表达式”。 举例:Left(“中国北京”,2) 返回“中国”。 Left(“中国北京”,20

22、) 返回“中国北京”。截取右子串函数截取右子串函数 格式:Right(Right(字符串表达式,数值表达式字符串表达式,数值表达式) ) 功能:从“字符串表达式”的最右端的第1个字符开始,截取“数值表达式”值个字符。 说明:同。 举例:Right(“中国北京”,2) 返回“北京”。 Right(“中国北京”,20) 返回“中国北京”。求字符串长度函数求字符串长度函数 格式:Len(Len(字符串表达式字符串表达式) ) 功能:返回“字符串表达式”的字符个数。 说明:当是Null值,则返回Null值。举例:Len(“中国北京”) 返回数值4。 Len(“中国 北京”) 返回数值5。 (中国和北京

23、之间有一个字符的空格)删除掉前导、尾随空格函数删除掉前导、尾随空格函数 格式: Ltrim(Ltrim(字符串表达式字符串表达式) ) RtrimRtrim( (字符串表达式字符串表达式) ) TrimTrim( (字符串表达式字符串表达式) )功能:Ltrim函数可以去掉“字符串表达式”的左边空格。Rtrim函数可以去掉“字符串表达式”的右边空格。Trim函数可以同时去掉“字符串表达式”的两边空格。举例:mystr“ I am a student ” Ltrim(mystr)返回字符串“I am a student ”。 Rtrim(mystr)返回字符串“ I am a student”。

24、 Trim(mystr)返回字符串“I am a student”。截取子串函数截取子串函数 格式:Mid(Mid(字符串表达式,字符串表达式,n1n1,n2)n2) 功能;从“字符串表达式”的左端第“n1”个字符开始,截取n2”个字符,作为返回的子字符串。 说明: “n1”和“n2”都是数值表达式。 方括号内的内容是可选的 当n2”缺省时,则返回从”字符串表达式”的左端第”n1”个字符开始直到“字符串表达式”的最右端的一个字符。 举例:mystr=“中国北京高等职业教育” Mid(mystr,5) 返回“高等职业教育”。 Mid(mystr,3,2) 返回“北京”。 Mid(mystr,1,

25、1) 返回“中”。(3)(3)日期时间函数日期时间函数系统日期函数系统日期函数 格式:Date()Date() 功能:返回当前系统日期。 举例:在窗体或报表上创建一个文本框,在其控件来源属性中输入: Date() 则在控件文本框内会显示出当前机器系统的日期,如: 2016-07-08年函数年函数 格式:Year(Year(日期表达式日期表达式) ) 功能:返回年的四位整数。 举例:myd:#2016-7-8# Year(myd)返回值2016。 月函数月函数 格式:Month(Month(日期表达式日期表达式) ) 功能:返回112之间的整数,表示一年的某月。 举例:Month(myd)返回值

26、7。日函数日函数 格式:Day(Day(日期表达式日期表达式) ) 功能:返回值为131之间的整数,表示日期中的某一天。 举例:DayY(myd)返回值为8。系统日期和时间函数系统日期和时间函数 格式:Now()Now() 功能:返回当前机器系统的日期和时间。 举例:在窗体或报表中创建一个控件,在其控件来源中输入: Now() 则在控件中显示出当前机器系统的日期和时间,如: 2016-7-8 18:08:10(4)(4)统计函数统计函数求和函数求和函数 格式:Sum(Sum(字符串表达式字符串表达式) ) 功能:返回字段中值的总和说明:“字符串表达式”可以是一个字段名(数值类型),或者是含有数

27、值类型字段的表达式。字段名用括起来。 举例:有1个“单价”字段和1个“数量”字段,求总价。可以用Sum函数计算其总价: Sum (单价*数量) 求平均函数求平均函数 格式:AvgAvg( (字符串表达式字符串表达式) ) 功能:求数值类型字段的平均值。 说明: “字符串表达式”可以是一个字段名(数值类型),或者是含有数值型字段的表达式。 Avg不计算任何Null值字段。 举例:设有一个“成绩”字段,可用Avg(成绩)求平均分。统计记录个数函数统计记录个数函数 格式:Count(Count(字符串表达式字符串表达式) ) 功能:统计记录个数。 说明: “字符串表达式”可以是一个字段名(数值类型)

28、,或者是含有数值型字段的表达式。 当用格式Count(*)时,将统计所有记录的个数,包括有Null值字段的记录。 举例:Count(学号)(其中“学号”为字段名)。统计学号字段不是Null值的所有记录数。 最大、小值函数最大、小值函数 格式: Max(Max(字符串表达式字符串表达式) ) MinMin( (字符串表达式字符串表达式) ) 功能:返回一组指定字段中的最大、小值。 说明:“字符串表达式”可以是一个字段名(数字类型),或者是含有数字型字段的表达式。 举例:有一个“成绩”字段,可以用Max(成绩)求该字段中的最大值,用Min(成绩)求该字段中的最小值。 3.使用数值作为查询条件使用数

29、值作为查询条件字段名条件功能成绩 =80 And =90查询成绩小于60分的记录查询成绩在8090之间的记录4. 4. 使用文本作为查询条件使用文本作为查询条件字段名条件功能职称“教授”查询职称为教授的记录“教授”Or”副教授”查询职称为教授或者副教授的记录Right(职称,2)=“教授”Instr(职称,”教授”)=1Or Instr(职称,”教授”)=2Instr(姓名,”王”)=1Like”王*”查询姓”王”的记录Left(姓名,1)=“王”查询姓名为2个字的记录Len(姓名)=2查询姓名不为李元的记录Not“李元”“李元”Or“王鹏”查询性别为李元或王鹏的记录In(“李元”,”王鹏”)

30、姓名功能条件字段名Instr(学生编号,”03”)=5查询学生编号第5个和第6个字符为03的记录Mid(学生编号,5,2)=“03”学生编号查询课程名称最后2个字为”基础”的记录Right(课程名称,2)=“基础”课程名称功能条件字段名字段名条件功能工作时间Between #1992-01-01# And #1992-12-31#查询1992年参加工作的记录Year(工作时间)=1992Date()-15查询15天前参加工作的记录Between Date()-20 And Date()查询20天内参加工作的记录Year(工作时间)=1999 And Month(工作时间)=4查询1999年4月

31、参加工作的记录出生日期Year(出生日期)=1980查询1980年出生的记录5.5.使用字段的部分值作为查询条件使用字段的部分值作为查询条件字段名条件功能课程名称Like”计算机*”查询课程名称以计算机开头的记录Left(课程名称,3)=“计算机”Like”*计算机*”查询课程名称包含计算机的记录姓名Not “王*”查询不姓王的记录Left(姓名,1)”王”6. 6. 使用空值或空字符串作为查询条件使用空值或空字符串作为查询条件字段名条件功能姓名Is null查询姓名为空值的记录Is not null查询姓名不为空值的记录联系电话“”查询没有联系电话的记录 在条件中在条件中,字段名必须用,字段

32、名必须用括起来,数据类型括起来,数据类型必须与字段匹配必须与字段匹配例例 在在“学生成绩学生成绩”数据库中数据库中查找成绩小于查找成绩小于7070分的女生或成绩大于等于分的女生或成绩大于等于9090分的男生分的男生在查询中进行计算在查询中进行计算(P74)(P74)1.查询计算功能查询计算功能 在在查询中可以执行两类计算查询中可以执行两类计算: 一类一类是是预定义计算预定义计算,又称汇总计算,即针对查询结果的全部或,又称汇总计算,即针对查询结果的全部或部分记录进行计算,包括求和、求平均值、计数、求最大值和最小部分记录进行计算,包括求和、求平均值、计数、求最大值和最小值以及计算标准偏差和方差等值

33、以及计算标准偏差和方差等; 另另一类是一类是自定义计算自定义计算,用于对查询结果中的一个或多个字段,用于对查询结果中的一个或多个字段进行数值、日期或文本计算,执行此类计算进行数值、日期或文本计算,执行此类计算时时必须直接必须直接在在“设计网设计网格格”中创建新的计算中创建新的计算字段字段,方法是将表达式输入到查询设计区中的方法是将表达式输入到查询设计区中的空空“字段字段”单元格单元格中中。 汇总汇总计算使用系统提供的汇总函数对查询中的记录组或全计算使用系统提供的汇总函数对查询中的记录组或全部记录进行分类汇总计算,需要部记录进行分类汇总计算,需要单击单击“设计设计”选项卡选项卡“显示显示/ /隐

34、藏隐藏”组中组中的的“汇总汇总”按钮,在按钮,在“查询设计器查询设计器”的设计网格中的设计网格中出现出现“总计总计”行。行。 (1)(1)预定义计算预定义计算2.2.在查询中进行计算在查询中进行计算例 统计学生人数(1)(2)保存取名显示结果运行结果运行结果例例 统计统计身高在身高在1.71.7米以上(不含米以上(不含1.71.7米)的学生米)的学生人数人数运行结果3.3.在查询中进行分组统计在查询中进行分组统计例例 统计统计男、女生人数男、女生人数4.4.添加计算字段添加计算字段例 将上例中显示字段名”ID之计数”改为”人数”运行结果 自定义自定义计算计算 :因为在设计器下方的总计栏中,只有

35、:因为在设计器下方的总计栏中,只有几种固定的计算,几种固定的计算, 不可以输入表达式,若要进行一些特不可以输入表达式,若要进行一些特殊的计算,在总计处选:殊的计算,在总计处选:ExpressionExpression,则自定义公式可写,则自定义公式可写在字段在字段栏处,即:创建计算字段,其方法是,栏处,即:创建计算字段,其方法是,将表达式将表达式 ( ( 可含有预定义若干种计算的函数可含有预定义若干种计算的函数 ) ) 直接输入到查询设直接输入到查询设计网格中的计网格中的“字段字段”行中行中。 例如:在某一个字段的空白例如:在某一个字段的空白处,写如下表达式:处,写如下表达式: 总评成绩总评成

36、绩 : : 平时成绩平时成绩 * *0.1+0.1+ 考试考试成成绩绩 * *0.30.3+期末期末成绩成绩 * *0.60.6 冒号之前的内容为字段显示的字符,之后的内容为冒号之前的内容为字段显示的字符,之后的内容为要显示的数据公式的算法。要显示的数据公式的算法。 注意:除汉字外的所有公式本身用的符号均为西文注意:除汉字外的所有公式本身用的符号均为西文符号。符号。(2 2)自定义计算)自定义计算自定义计算要注意:自定义计算要注意:1、冒号之前的内容为表达式要显示的字符内容;、冒号之前的内容为表达式要显示的字符内容;2、冒号后的内容即为要按其进行运算的表达式的内容;、冒号后的内容即为要按其进行

37、运算的表达式的内容;3、如表达式含字段名,要用如表达式含字段名,要用 括起来括起来,取其中的值参加运取其中的值参加运算;算;自定义计算输入规则:自定义计算输入规则:计算新字段名:表达式计算新字段名:表达式运行结果在总计处选:在总计处选:ExpressionExpression例:计算每位学生总分,查询结果包含学号、姓名、总分字段。运行结果例:计算每位学生年龄,查询结果包含学号、姓名、出生日期、年龄字段。例:计算每位学生年龄,查询结果包含学号、姓名、出生日期、年龄字段。运行结果 例:统计学生成绩表中不同姓氏的学生的人数,输出字段为:例:统计学生成绩表中不同姓氏的学生的人数,输出字段为:姓氏和人数

38、,并且按人数降序排序。(假设姓氏为姓名的第一个姓氏和人数,并且按人数降序排序。(假设姓氏为姓名的第一个汉字)汉字) 例:统计学生成绩表中例:统计学生成绩表中“张张”姓和姓和“吴吴”姓的学生的人数,姓的学生的人数,输出字段为:姓氏和人数,并且按姓氏升序排序。(假设姓氏为输出字段为:姓氏和人数,并且按姓氏升序排序。(假设姓氏为姓名的第一个汉字)姓名的第一个汉字) 例:统计学生成绩表中不同年龄的学生人数,输出时按例:统计学生成绩表中不同年龄的学生人数,输出时按年龄升序排序年龄升序排序运行结果:运行结果: 使用查询设计器可创建基于多表的交叉表查询。 三、利用查询设计器创建交叉表查询三、利用查询设计器创

39、建交叉表查询 在查询的设计视图下,单击【查询工具/设计】选项卡【查询类型】组中【交叉表】按钮,可以在设计网格中增加【交叉表】行。例:在例:在“grade”表中查询每位学生表中查询每位学生各门课成绩各门课成绩操作步骤:操作步骤:(1)“创建”选项卡“查询”组“查询设计”按钮(2)“设计”选项卡“查询类型”组“交叉表”按钮如图 (3)在设计网格中按需求设计例:在例:在“grade”表中查询每位学生各门课表中查询每位学生各门课成成绩,结果显示学生学号、姓名、各门课成绩。绩,结果显示学生学号、姓名、各门课成绩。如图:如图:利用查询设计器创建交叉表查利用查询设计器创建交叉表查询如下:询如下: 例:以交叉

40、表的形式查询每个学生的各门课程成绩及平均分。要求:输出时平均分保留一位小数。操作步骤操作步骤:打开查询设计视图,并添加数据源及显示字段单击【查询工具/设计】选项卡【查询类型】组中【交叉表】按钮,使查询类型为交叉表查询在【交叉表】行上设置:行字段、列字段在【交叉表】行上设置:值字段(将该字段的【总计】行改为:第一条记录)添加汇总字段并设置汇总函数(将该字段的【交叉表】行设置为:行标题)行行标题标题列列标标题题值值 如果在【交叉表】行中,设置某个字段的选项为:“ 值值 ”,则在【总计】行中可以有多种选择。 如果获取的是单一数据,则应该选择“ First ”或“ Last ”。创建交叉表查询时,使用

41、交叉表查询向导和设计视图的比较:创建交叉表查询时,使用交叉表查询向导和设计视图的比较:数据源来自于一个表或查询时,使用交叉表查询向导创建;数据源来自于多个表或查询时,使用设计视图创建;如果【行标题】或【列标题】需要建立新字段得到,则使用设计视图创建。第三节第三节 创建参数查询创建参数查询(P72) 参数查询是按用户给定的字段值来查找记录的查询。参数查询提供一个对话框,提示用户输入一个参数值,然后查找并显示符合参数值的记录。查询操作原理:查询操作原理:在运行查询的过程中自动修改查询的规则查询执行方法:查询执行方法:用户在执行时会显示一个输入对话框以提示用户输入信息查询设计方法:查询设计方法:在查

42、询设计网格的“条件”单元格中添加运行时系统将显示的提示信息。 在ACCESS中创建参数查询是在创建查询时,在查询条件区域中输入用方括号“”括起来的提示文本信息。在运行该查询时,ACCESS将显示包含参数表达式文本的参数提示框。1 1、 单参数查询单参数查询 单参数查询只需要在字段中指定一个参数,参数通常是完整的字段值,也可以是字段的部分值,还可以是窗体控件中的值。 在在Access中,可以建立中,可以建立单参数单参数查询,也可以建立查询,也可以建立多参数多参数查询。查询。例:以输入的姓名为参数,显示该同学的基本信息运行时提示例:建立一个查询,显示学生“姓名”和大于指定数值的“成绩”。例:建立一

43、个查询,显示学生“姓名”和大于指定数值的“语文成绩”。运行时提示:查询结果:或或运行时提示:查询结果:注:给字段别名时,要确保原字段的标注:给字段别名时,要确保原字段的标题属性没有设置题属性没有设置 。2 2、 多参数查询多参数查询 多参数查询在多个字段中指定参数,执行时提示对话框从左到右依次显示,用户则依次输入多个参数,最后根据多个参数显示查询结果。 运行时提示例:在“学生成绩”中查询指定语文成绩范围内的学生信息。运行时提示第四节第四节 创建操作查询创建操作查询 操作查询可以对查询数据源进行各种操作,如删除记录、更新记录、追加记录,甚至生成一个新表。操作查询不同于一般选择查询之处是在查询的同

44、时,会改变原来表中的数据,因此执行操作查询时系统会给出警告信息,用户应做好备份工作。 操作操作查询查询包括更新查询、追加查询、包括更新查询、追加查询、删除删除查询查询和生成表查询。和生成表查询。 操作操作查询所做的一切操作都是在选择查询的基础上完成的查询所做的一切操作都是在选择查询的基础上完成的,即先建一个选择查询再选中功能区中用户所要进行的操作查询类型一、数据表备份一、数据表备份 在操作查询运行时会改变已有表中的数据。因此,在创建操作查询时应注意备份数据。 1、选择要备份的数据表,右击选定的数据表,在弹出的快捷菜单中选择“复制”或使用快捷键Ctrl+C进行复制,也可以用菜单栏或工具栏进行操作

45、。 2、在数据库的空白处右击,从弹出的菜单中选择“粘贴”或使用快捷键Ctrl+V进行粘贴。 3、在进行粘贴时会打开“粘贴表方式”对话框,选择“结构和数据”并在“表名称”文本框中输入备份表的名称。二二、使用更新查询、使用更新查询 利用数据表视图更新一个表或多个表的满足某些条件的记录操作起来比较麻烦,但是利用更新查询可以实现对一个或多个表中的一组记录作全局的更改。 更新查询可以一次性修改一批满足指定条件的记录,而不必逐个地去修改每条记录,在实际中具有广泛的应用。更新查询将改变原来的数据,注意做好备份工作。 更新查询是根据查询的结果,对一个或多个表中相关记录的字段值进行更新。 更新查询的最大优势在于

46、:用相同的表达式批量修改多条记录的字段值。例:将姓名为“付丽”的学生改名为“李丽”操作步骤:(1)打开查询设计器,添加查询需要的表,并添加需要更新的相关字段(2)选择查询类型为“更新”(3)在条件行中输入满足条件“付丽”(4)在“更新到”单元格中输入更新内容将grade表中所有成绩加100分将student表中所有男同学体重增加10%或或 更新查询不能更新更新查询不能更新“ 自动编号自动编号”字段。如果在更新查询中设置条件,字段。如果在更新查询中设置条件,则只对满足条件的记录进行更新。则只对满足条件的记录进行更新。三、使用三、使用追加查询追加查询 利用追加查询可实现对原数据库表进行追加记录的操

47、作,它提供了一它提供了一个不用打开表,就可以增加记录的方法。个不用打开表,就可以增加记录的方法。 其中涉及到两个表,一个称它为被追加表被追加表,一个称它为追加源表追加源表。前者的字段应少于或者等于后者即追加源表字段数。且两个表相关的字段类型相一致。 追加查询就是把查询的结果添加到另一个表的末尾(查询的数据源可以是一个或多个表)。 再追加查询中,要被追加记录的表必须是已经存在的表。这个表可以是当前数据库的,也可以是另外一个数据库的,追加查询对于从表中筛选记录添加到另一个表中是很有用的。 例:备份student表结构,然后将student表中男学生记录追加过来。操作步骤:操作步骤:(1)复制粘贴s

48、tudent表结构(2)打开查询设计器,添加查询需要的数据表student(3)选择查询类型为“追加”,并选择追加 到表名称“student 备份”,并在字段列”sex”下面的条件单元格中输入条件表达式:”男”(4)运行四、四、删除查询删除查询 删除查询可以从已有表中删除符合指定条件的记录,且所作的删除操作是无法撤消的,就像在表中直接删除记录一样。查询运行后将从原表中永久删除指定的记录,且无法恢复永久删除指定的记录,且无法恢复!为避免误删除,可以先预览查询的结果或对原数据表进行备份。删除查询删除的是整个记录,而不是指定的字段或字段中的数据。操作步骤:操作步骤:打开查询的设计视图添加数据源更改查

49、询的类型为删除查询设置删除的条件例:删除student备份表中所有女生的记录。操作步骤:(1)在查询设计器,添加查询需要的数据表“student 备份”(2)选择查询类型为“删除”,并在字段列“sex”下面的条件单元格中输入条件表达式:”女” 将将“grade”备份表备份表中成绩中成绩小于小于70分的记录删除。分的记录删除。从grade表中删除姓名为“王超”的记录。【分析】 此删除查询涉及两张表:student表和grade表。删除的是grade表表中的记录;条件设置来自于student表。若删除查询的数据源来自多表(且已创建关联),则: 删除的只能是子表中的记录; 主表中的字段用于条件设置;

50、 与两表之间是否建立参照完整性规则无关。 设计视图中的【删除】行: From指定删除记录的表 Where指定删除的条件另外,参数查询和操作查询可以结合起来应用。例如:另外,参数查询和操作查询可以结合起来应用。例如: 选择查询视图中;选择查询视图中; 选中删除查询;选中删除查询; 再选择参数查询,在某一个字段处输入字段名;再选择参数查询,在某一个字段处输入字段名; 结果是满足输入的字段条件的记录被删除结果是满足输入的字段条件的记录被删除;例:将例:将student备份表中满足输入学号的条件的记录删除备份表中满足输入学号的条件的记录删除操作步骤:(1)在查询设计器,添加查询需要的数据表“stude

51、nt 备份”(2)选择查询类型为“删除”,选择学号字段,并在其下面的条件单元格中输入条件表达式:请输入要删除学生的学号:(3)运行五五、使用生成表查询、使用生成表查询 生成表查询可以利用表、查询中的数据创建一个新表,还可以将生成的表导出到数据库或窗体、报表中,实际上就是把查询生成的动态集以表的形式保存下来。 生成表查询与选择查询有相似之外,都可以在多个表中将指定字段提取到查询结果中。它们的区别在于:选择查询只是从查询的数据源中检索数据形成查询的结果集,而生成表查询除了建立一个查询文件外,还会在数据库中创建一个新生成的数据表文件,并且每次运行生成表查询都会将查询的结果更新到这个表中。 当生成表查

52、询的数据源中的数据发生变化时,新表不能随着发生改变,必须运行生成表查询项目数据才会有效。 查询在每次打开时(运行时)都要重新从查询的数据源中提取数据生成查询结果,而生成表查询所创建的生成表中数据是独立存在的,打开该表即可使用。例:将student备份表中所有身高在1.7米以上的男同学筛选出来生成一个新的数据表。操作步骤:(1)在查询设计器,添加查询需要的数据表“student 备份”(2)选择查询类型为“生成表”,选择性别字段,并在其下面的条件单元格中输入条件表达式:”男” ;height字段条件行输入:1.7(3)运行例:将grade备份表中所有90分以上的记录筛选出来生成一个新的数据表。切

53、换到数据表视图可预览新建的表。运行查询后,才创建新表(创建新表前,系统将有提示)。 操作查询不仅选择表中数据,还对表中数据进操作查询不仅选择表中数据,还对表中数据进行修改。因此,为了避免因误操作引起的不必要行修改。因此,为了避免因误操作引起的不必要的改变,在数据库窗口中的每个的改变,在数据库窗口中的每个操作查询图标之操作查询图标之后显示一个感叹号后显示一个感叹号,以引起注意。,以引起注意。操作查询总结操作查询总结:第第1 1步:一定是在设计示图器中(选择查询)进行的操作查询,步:一定是在设计示图器中(选择查询)进行的操作查询, 即先作一个选择查询,将要对之操作的表(或者查询)放入到设即先作一个

54、选择查询,将要对之操作的表(或者查询)放入到设计器的查询对象区域中;注意:在追加查询中是将用来对目标表计器的查询对象区域中;注意:在追加查询中是将用来对目标表进行追加数据的源表放入到设计器的查询区域进行追加数据的源表放入到设计器的查询区域。第第2 2步:在设计器状态下,菜单步:在设计器状态下,菜单查询查询选择相应的操作选择相应的操作;第第3 3步:在查询设计区中,进行条件的书写。生成表:写要选择步:在查询设计区中,进行条件的书写。生成表:写要选择生成记录的条件;删除:写要删除记录的条件;更新到:写变为生成记录的条件;删除:写要删除记录的条件;更新到:写变为什么;追加到:写目标数据表什么;追加到

55、:写目标数据表;第第4 4步:将查询设计结果进行步:将查询设计结果进行保存保存后,图标变化,分别为后,图标变化,分别为:1 1、非常关键的一步:这四个图标中的、非常关键的一步:这四个图标中的 !都表明这是个可执行文件,都表明这是个可执行文件,所以一定要双击它,即执行一下这个操作,才可产生相应的结果。所以一定要双击它,即执行一下这个操作,才可产生相应的结果。!也表明这个操作可能会影响到数据表的数据,所以提醒用户注意。完也表明这个操作可能会影响到数据表的数据,所以提醒用户注意。完成之后,即以后再执行它,它将询问用户,操作可能会带来数据的变成之后,即以后再执行它,它将询问用户,操作可能会带来数据的变

56、化,是否要重新操作。操作结果也是到表对象去看化,是否要重新操作。操作结果也是到表对象去看! !2 2、还有最重要的地方要注意,即:数据库中的表有关联问题,在设计、还有最重要的地方要注意,即:数据库中的表有关联问题,在设计更新、删除操作时,要考虑到表与表之间的级联关系、主表与子表之更新、删除操作时,要考虑到表与表之间的级联关系、主表与子表之间有无互相影响的问题。间有无互相影响的问题。 结论是:结论是: 若有级联关系,主表的变动会若有级联关系,主表的变动会影响到子表,无论有无级联关系,子表的变动均不会影响到主表。影响到子表,无论有无级联关系,子表的变动均不会影响到主表。3 3、因为是操作查询,所以

57、数据表中的数据会发生变化,为了保证数据、因为是操作查询,所以数据表中的数据会发生变化,为了保证数据不丢失,要对原数据表进行备份操作,然后再进行相关的查询操作不丢失,要对原数据表进行备份操作,然后再进行相关的查询操作。第五节第五节 使用使用SQLSQL查询查询 SQL结构化查询语言是标准的关系型数据语言。结构化查询语言是标准的关系型数据语言。 查询的本质是一条查询的本质是一条SQL语句语句,即每个查询都对应着一,即每个查询都对应着一条条SQL查询命令。查询命令。 保保存查询时,保存的是一条存查询时,保存的是一条SQL语句,而不是查询的语句,而不是查询的结果。结果。 创建查询,既可以在其设计视图中

58、实现,也可以在其创建查询,既可以在其设计视图中实现,也可以在其SQL视图中直接输入视图中直接输入SQL语句实现。语句实现。 某些特殊的查询不能在设计视图中进行,只能通过某些特殊的查询不能在设计视图中进行,只能通过SQL语句才能实现语句才能实现。 SQL(结构化查询语言)是一种数据库查询语言,(结构化查询语言)是一种数据库查询语言,它它的功能包括:的功能包括: 数据定义数据定义 数据查询数据查询 数数据操作据操作 数据控制数据控制SQLSQL查询是用户使用查询是用户使用SQLSQL语句创建的查询语句创建的查询。SQL 的命令动词的命令动词GRANT,REVOTE数据控制数据控制INSERT,UP

59、DATE,DELETE数据操数据操作作SELECT数据查询数据查询CREATE,DROP,ALTER数据定义数据定义动词动词SQL基本功能基本功能 SQL SQL完成数据定义、数据查询、数据操作和数完成数据定义、数据查询、数据操作和数据控制的核心功能只有据控制的核心功能只有9 9个命令动词,如下个命令动词,如下Create 创建表结构、drop 删除表、alter 修改已建表的表结构; 本节将根据实际应用的需要,主要介绍数据定义、数据查询和数据操作等基本语句。 进入进入SQLSQL视图:视图:(1)先进入空白查询设计视图(不选择数据源)(2)(2)或在查询设计视图表关系空白区右击,在弹出菜单中

60、选择“SQL视图”或在新建查询标题处右击,在弹出菜单中选择“SQL视图”SQL SQL 支持的数据类型:支持的数据类型:标标 示示说说 明明标标 示示说说 明明text文本文本/字符型字符型number数字型数字型integer整型整型long长整型长整型single单精度型单精度型double双精度型双精度型byte字节字节date日期型日期型generalOLE 对象对象型型logical布尔布尔/逻辑型逻辑型currency货币型货币型memo备注型备注型 SQL查询是使用SELECT命令,这是数据库的核心操作。在SQL语言中用得最多的就是SELECT语句了。我们就先讲讲SELECT语句

温馨提示

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

评论

0/150

提交评论