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