,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,12/27/2014,#,ACCESS,数据库技术及应用,第四章,Access2010,查询,ACCESS数据库技术及应用第四章Access2010查询,1,4,.1,查询的种类与应用,4,.1.1,查询的种类,(,1,)选择查询,(,2,)交叉表查询,(,3,)参数查询,(,4,)操作查询,删除查询,更新查询,追加查询,生成表查询,(,5,),SQL,查询,4.1 查询的种类与应用4.1.1 查询的种类,2,4,.1,查询的种类与应用,4.1.2,查询的应用,(,1,)筛选记录,(,2,)整理资料,(,3,)执行计算,(,4,)操作表,(,5,)多表查询,(,6,)当做其他对象的数据源,4.1 查询的种类与应用4.1.2 查询的应用,3,4.2,查询的建立方法,4.2.1,使用查询向导创建查询,例,4.1,查询“,sb,”表的所有信息,。,以“,sb,”表为例说明使用查询向导来创建查询的过程。,4.2 查询的建立方法4.2.1 使用查询向导创建查询,4,4.2,查询的建立方法,4.2.2,使用查询设计视图创建查询,查询设计视图中的准则就是查询记录应符合的条件。设置查询条件与在设计表时设置字段的有效性规则的方法相似:,(,1,)准则表达式;,(,2,)在表达式中使用日期与时间;,(,3,)表达式中的计算;,(,4,)使用准则表达式生成器。,查询除了可以对单表进行之外,还可以对多表进行,查询。,4.2 查询的建立方法4.2.2 使用查询设计视图创建查询,5,4.3,创建选择查询,4.3.1,指定要查询的表或查询,1.,在设计视图中添加,表,2.,在设计视图中删除表,4.3 创建选择查询4.3.1 指定要查询的表或查询,6,4.3.2,指定字段及其相关操作,1.,指定出现在查询中的字段,查询设计网格主要内容有:,(,1,)字段:选择查询中要包含的表字段。,(,2,)表:选择字段的来源表。,(,3,)排序:定义字段的排序方式。,(,4,)显示:设置是否在数据表视图中显示所选字段。,(,5,)条件:设置字段的查询条件。,(,6,)或:用于设置多条件之间的或关系。,4.3,创建选择查询,4.3.2 指定字段及其相关操作4.3 创建选择查询,7,4.3.2,指定字段及其相关操作,2.,字段的计算,要在查询中执行计算,可以使用:,(,1,)预定义计算:即所谓的,“,总计,”,计算,用于对查询中的记录组或全部记录进行下列的数量计算:总计、平均值、计数、最小值、最大值、标准差或方差。,(,2,)自定义计算:使用一个或多个字段中的数据在每个记录上执行数值、日期和文本计算。对于这类计算,需要直接在,设计网格,中创建新的,计算字段,。,4.3,创建选择查询,4.3.2 指定字段及其相关操作4.3 创建选择查询,8,4.3.2,指定字段及其相关操作,表达式的构造是“自定义计算”方法中非常重要的环节,在建立表达式时,请注意下列事项:,(,1,)请将字段包含在一对方括号(,)中。例如:,售价,*,销售量,(,2,)请将常数字符串包含在,对双引号中。例如:,员工姓名,&,先生,/,小姐,(,3,)请将日期时间包含在一对井字号(,#,)中。例如:,#1994,1,10 AM 10,:,20#+10,(,4,)也可使用运算符“”或“,+,”来连接文字类型字段或文字字符串。例如:,收信人地址:,&,邮政编码,&,住家地址,或,收信人地址:,+,邮政编码,+,住家地址,4.3,创建选择查询,4.3.2 指定字段及其相关操作4.3 创建选择查询,9,4.3.3,指定查询结果的排列顺序,(,1,)首先您必须决定要根据哪,个输出字段来排序,然后用鼠标单击其“排序:”行的组合框的向下箭头。,(,2,)如果您想要递增排序,请选择“升序”选项;如果您想要降序,请选择“降序”选项。,4.3,创建选择查询,4.3.3 指定查询结果的排列顺序4.3 创建选择查询,10,4.3.4,指定查询条件,(,1,)从“字段:”行的组合框中,选取您想用来设定条件的字段。,如果您并不希望这个用来设定条件的字段的数据属性出现在查询结果中,也就是说这个字段仅仅用来设定条件,而不参加最后的数据输出,请取消其“显示:”行的复选框的标志()。,(,2,)采用下列两种方式之一建立条件:,直接在该字段的“条件:”单元格的文字框中键入条件式。如果您觉得“条件:”行的文字框太小,造成输入条件时的不便,您可以使用前面介绍的“缩放”对话框键入条件。,利用表达式生成器来帮助您建立条件。,在查询条件中,文字和数值条件的查询,基本上满足了所有的选择查询的需求。除此之外,条件还可以基于日期,/,时间、是,/,否等数据类型。,4.3,创建选择查询,4.3.4 指定查询条件4.3 创建选择查询,11,4.3.4,指定查询条件,1.,数值类型条件,数值条件包括数字和货币两种数据类型的比较,例如查询价格高于,10000,元的设备、大修费用大于等于,1000,元的设备等。常用的比较运算符有,、,=,、,、,、,=,、,、,=,、,=,、,等,还会经常用到,like,运算符。,4.3,创建选择查询,4.3.4 指定查询条件4.3 创建选择查询,12,4.3.4,指定查询条件,3.,日期,/,时间型条件,日期,/,时间型表达式两边的数字符号(,#,)表示该元素是日期,/,时间值。,Access,自动将数字符号(,#,)所包围的值作为日期,/,时间值来对待,并允许用任何常用的日期或时间格式来键入此值。,如果字段的,数据类型,是日期,/,时间,在此字段的有效性表达式或条件表达式中不必为日期,/,时间值两边键入数字符号。可以用任一常用的日期或时间格式键入值,,Access,会自动在该值的两边插入正确的符号。,4.,多条件查询,当,查询要求不能仅用一个字段的“条件,:,”行来说明的时候,我们可以把条件表示在不同字段的“条件,:,”行上,如图,4.50,所示。,除了可以在“条件:”行的文字框中键入条件之外,也可以在“或:”行或是其下方的各行的文字框中键入条件,仅需注意的是,,Access,会将位于同一行的各个查询条件先以“逻辑与,AND,”运算符来连接,然后再使用“逻辑或,OR,”运算符来连接不同行的条件式。,4.3,创建选择查询,4.3.4 指定查询条件4.3 创建选择查询,13,4.3.5,使用向导在表中查找重复的记录或字段值,使用,“,查找重复项查询向导,”,,可以创建选择查询,用于确定表中是否有重复的记录或字段值。例如,可以搜索“部门”字段中的重复值来查看有多个设备的部门,或者可以搜索“,dx,”表中“编号”字段的重复值来查看同一编号的设备是否多次大修过。,4.3,创建选择查询,4.3.5 使用向导在表中查找重复的记录或字段值4.3 创建,14,4.4,创建交叉表查询,4.4.1,利用向导创建交叉表查询,例,4.14,查询不同部门的主要设备和非主要设备的个数。,4.4 创建交叉表查询4.4.1 利用向导创建交叉表查询,15,4.4,创建交叉表查询,4.4.2,自行创建交叉表查询,(,1,)如果要将某些字段的值按行显示,请单击,“,交叉表:,”,行,然后单击,“,行标题,”,。必须在这些字段的,“,总计:,”,行保留默认的,“Group By”,。,(,2,)如果要将字段的值显示为列标题,请单击,“,交叉表:,”,行,然后单击,“,列标题,”,。可以只选择一个字段的,“,列标题,”,,且必须为这个字段的,“,总计:,”,行保留默认的,“Group By”,。默认情况下,列标题按字母或数字顺序排序。如果希望以其他方式排序,或者要限制显示的列标题,请设置查询的,“,列标题,”,属性。,(,3,)对于要将其值用于交叉表的字段,请单击,“,交叉表:,”,行,然后单击,“,值,”,。只有一个字段可以设置为,“,值,”,。在这个字段的,“,总计:,”,行,单击希望用于交叉表的聚合函数类型(例如“合计”、“平均值”或“计数”)。,4.4 创建交叉表查询4.4.2 自行创建交叉表查询,16,4.5,创建参数查询,4.5.1,单一参数查询,4.5 创建参数查询4.5.1 单一参数查询,17,4.5,创建参数查询,4.5.2,多个,参数查询,4.5 创建参数查询4.5.2 多个参数查询,18,4.5,创建参数查询,4.5.3,带有通配符的参数查询,在参数查询中,如果查询符合下列情况,请为参数指定,数据类型,:,(,1,)是交叉表查询或者是交叉表查询的基础查询。,这种情况下,还必须在交叉表查询中设置,“,列标题,”,属性。,(,2,)是图表的基础查询。,(,3,)提示输入数据类型为,“,是,/,否,”,的字段。,(,4,)提示字段来自外部,SQL,数据库,的表,。,在参数查询中为参数指定数据类型的步骤如下:,(,1,)单击,“,查询,”,菜单上的,“,参数,”,命令。,(,2,)在第一个,“,参数,”,单元格中,键入在查询设计网格中要输入的第一个提示。,(,3,)在,“,数据类型,”,单元格的右侧,按照表,4.6,所列的指导规则,单击适当的,数据类型,。,(,4,)对每一个要指定数据类型的参数,重复第,2,步和第,3,步。,4.5 创建参数查询4.5.3 带有通配符的参数查询,19,4.6,创建操作查询,4.6.1,生成表查询,创建生成表查询时,请指定:,(,1,)新数据库表(目标表)的名称。,(,2,)要从中复制数据的一个或多个表(源表)。可以从单个表或联接表中进行复制。,(,3,)要复制其内容的源表中的列。,(,4,)排序次序(如果想以特定的次序复制行)。,(,5,)定义要复制数据的搜索条件。,(,6,),“,分组,”,选项(如果仅想复制汇总信息)。,4.6 创建操作查询4.6.1 生成表查询,20,4.6,创建操作查询,4.6.2,更新查询,创建更新查询时,请指定:,(,1,)要更新的表。,(,2,)要更新其内容的列。,(,3,)用以更新各个列的值或表达式。,(,4,)定义要更新行的搜索条件。,4.6 创建操作查询4.6.2 更新查询,21,4.6,创建操作查询,4.6.3,追加查询,创建追加查询时,要指定:,(,1,)要将记录复制到其中的数据库表(目标表)。,(,2,)要从中复制记录的一个或多个表(源表)。一个或多个源表将成为子查询的一部分。如果正在表内进行复制,则源表与目标表相同。,(,3,)要复制其内容的源表中的字段。,(,4,)要将数据复制到其中的目标表中的目标字段。,(,5,)定义要复制记录的搜索条件。,(,6,)排序次序(如果想按照特定次序复制行)。,(,7,),“,分组,”,选项(如果只想复制汇总信息)。,4.6 创建操作查询4.6.3 追加查询,22,4.6,创建操作查询,4.6.4,删除查询,(,1,)使用“删除查询”删除记录之后,将无法撤消此操作。因此,在运行查询之前,应该先在,“,数据表,”,视图中预览即将删除的查询所涉及的数据。,(,2,)应该随时维护数据的备份副本。如果不小心错删了数据,可以从备份副本中恢复它们。,(,3,)在某些情况下,执行“删除查询”可能会同时删除相关表中的记录,即使它们并不包含在此查询中。当查询只包含一对多关系中,“,一,”,方的表,并且允许对该关系使用级联删除时,就可能会发生这种情况:删除,“,一,”,方表中的记录,就会同时删除,“,多,”,方表中的记录。一般为了确保记录在删除时不影响多表之间数据的一致性,我们设定表间关系时,应该同时把选项“实施参照完整性”、“级联更新相关字段”、“级联删除相关记录”都选上。,4.6 创建操作查询4.6.4 删除查询,23,4.7,SQL,查询,4.7.1,SQL,语言的分类,1.,数据定义语言,数据定义语言用于执行数据库的任务,对数据库以及数据库中的各种对象进行创建、删除、修改等,操作。,2.,数据操纵语言,数据操纵语言用于操纵数据库中的各种,对象。,3.,数据控制语言,数