数据库基础与应用第3章查询3.1查询概述查询是Access2010数据库的主要对象,是Access2010数据库的核心操作之一。利用查询可以直接查看表中的原始数据,也可以对表中数据计算后再查看,还可以从表中抽取数据,供用户对数据进行修改、分析。查询的结果可以作为查询、窗体、报表、页的数据来源,从而增强了数据库设计的灵活性。2019年12月20日星期五3.1.1查询的概念与功能查询就是以数据库中的数据作为数据源,根据给定的条件从指定的数据库的表或已有的查询中检索出符合用户要求的纪录数据,形成一个新的数据集合。查询的结果是动态的,它随着查询所依据的表或查询的数据的改动而变动。查询的数据来源于表或其他已有查询。每次使用查询时,都是根据查询准则从数据源表中创建动态的记录集合。这样做一方面可以节约存储空间,因为Access数据库文件中保存的是查询准则,而不是记录本身;另一方面可以保持查询结果与数据源中数据的同步。2019年12月20日星期五3.1.1查询的概念与功能查询的功能(1)以一个或多个表或查询为数据源,根据用户的要求生成动态的数据集。(2)根据指定准则来限制结果集中所要显示的纪录或字段。(3)可以对数据进行统计、排序、计算和汇总。(4)根据指定准则来查询不符合指定条件的纪录。(5)可以设置查询参数,形成交互的查询方式。(6)利用交叉表查询,进行分组汇总。(7)利用操作查询,对数据表进行追加、更新、删除等操作。(8)利用操作查询,可将结果集生成为一个新的数据表。(9)查询作为其他查询、窗体和报表的数据源。2019年12月20日星期五3.1.2查询分类在Access2010中,常见的查询类型包括以下5种:选择查询参数查询交叉表查询操作查询SQL查询2019年12月20日星期五选择查询利用选择查询可以从数据库的一个或多个表中抽取特定的信息,并且将结果显示在一个数据表上供查看或编辑,或用作窗体或报表的数据源。利用选择查询,用户能对纪录分组,并对分组中的字段值进行各种计算,如求平均、汇总、最小值、最大值,以及其他统计。选择查询包括:简单选择查询、统计查询、重复项查询和不匹配项查询等几类。2019年12月20日星期五参数查询执行参数查询时,屏幕将显示提示信息对话框。用户根据提示输入相关信息后,系统会根据用户输入的信息执行查询,找出符合条件的信息。参数查询分为单参数查询和多参数查询两种。执行查询时,只需要输入一个条件参数的称为单参数查询;而执行查询时,针对多组条件,需要输入多个参数条件的称为多参数查询。2019年12月20日星期五交叉表查询交叉表查询是指将来源于某个表中的字段进行分组,一组列在数据表的左侧,一组列在数据表的上部,然后再数据表行与列的交叉处显示表中某个字段各种统计值,如求和、求平均、统计个数、求最大值和最小值等。2019年12月20日星期五操作查询操作查询是利用查询所生成的动态结果集对表中的数据进行更新的一类查询。包括:生成表查询、更新查询、追加查询、删除查询等几种。2019年12月20日星期五SQL查询SQL(StructuredQueryLanguage)结构化查询语言,是用来查询、更新和管理关系型数据库的标准语言。SQL查询就是用户使用SQL语句创建的查询。常见的SQL查询有以下几种类型:联合查询、传递查询、数据定义查询和子查询。2019年12月20日星期五3.1.3查询视图Access2010的每个查询主要有三个视图,即“数据表”视图、“设计”视图和“SQL”视图。其中,“数据表”视图用于显示查询的结果数据。“设计”视图用于对查询设计进行编辑。“SQL”视图用于显示与“设计”视图等效的SQL语句。三种视图可以通过工具栏上的按钮以及下拉列表框中的“SQL”视图进行相互切换。2019年12月20日星期五3.1.3查询视图2019年12月20日星期五数据表视图例题3-1几种视图方式的切换3.1.3查询视图2019年12月20日星期五设计视图3.1.3查询视图2019年12月20日星期五SQL视图3.1.3查询视图查询的“数据表”视图与表的“数据表”视图的区别:在查询数据表中无法加入或删除列,而且不能修改查询字段的字段名。在查询的数据表中,虽然不能插入列,但是可以移动列。而且在查询的数据表中可以改变列宽和行高,也可以隐藏和冻结列,还可以进行排序和筛选。另外,在查询中用户还可以运用各种表达式对表中的数据进行计算,生成新的查询字段。2019年12月20日星期五3.2选择查询所谓“选择查询”就是从一个或多个有关系的表中将满足要求的数据选择出来,并把这些数据显示在新的查询数据表中。使用选择查询可以从一个或多个表或查询中检索数据,可以对纪录组或全部纪录进行求总计、统计个数等汇总计算。一般情况下,建立查询的方法主要有两种,即使用“简单查询向导”和“设计”视图。2019年12月20日星期五3.2.1引例•如何使用“简单查询向导”来创建单表查询或多表查询?•如何使用“设计”视图来创建单表查询或多表查询?•如何运行查询?•如何设置查询准则来进行条件查询?•如何修改查询?•如何完成查找重复项和不匹配项查询?2019年12月20日星期五3.2.1利用向导创建查询1.使用“简单查询向导”创建查询(1)建立单表查询例题3-2查询学生的基本信息,并显示学生的姓名、性别、出生日期等信息。操作如下:2019年12月20日星期五新建查询对话框3.2.2利用向导创建查询2019年12月20日星期五查询方式的选择注意:若选择的查询字段中有数字型字段将会出现此界面,否则无此界面。3.2.2利用向导创建查询2019年12月20日星期五学生基本信息查询结果3.2.2利用向导创建查询(2)建立多表查询任务:查询学生的课程成绩,显示的内容包括:学号、姓名、课程编号、课程名称和成绩,而这些字段分别来自“学生”、“课程”和“成绩”表,而这3个表应事先已经建立好关系。例题3-3查询学生的课程成绩,显示的内容包括:学号、姓名、课程编号、课程名称和成绩。2019年12月20日星期五3.2.3查找重复项和不匹配项查询用户有时要在表中查找内容相同的记录,有时要在表中查找与指定内容不相匹配的记录,这就要用到查找重复项和不匹配项查询。2019年12月20日星期五查找重复项查询在Access中,可能需要对数据表中某些具有相同值的记录进行检索和分类。利用“查找重复项查询向导”可以在表中查找内容相同的记录,同时,也可以确定表中是否存在重复值的记录。即查找重复项查询可以快速查找到表中的重复字段。如查找同年、同月、同日出生的学生信息。例题3-4从学生表中查询同年同月同日出生的学生信息。2019年12月20日星期五查找不匹配项查询在Access中,可能需要对数据表中的记录进行检索,查看它们是否与其他记录相关,是否真正有实际意义。即用户可以利用“查找不匹配项查询向导”在两个表或查询中查找不相匹配的记录。通过不匹配项查询,能帮助用户查找到可能遗漏的操作。如查找没有选课的学生姓名、性别及所在系编号,即找出“学生”表和“成绩”表不符的记录。例题3-5查询没有考试成绩的学生信息,显示这些学生的学号、姓名、班级编号。2019年12月20日星期五3.3使用设计视图创建查询对于比较简单的查询,使用向导比较方便。但是对于有条件的查询,则无法使用向导来创建查询,而是需要在“设计”视图中创建查询。使用“设计”视图创建查询。用户可以通过设置条件来限制需要检索的记录,通过定义统计方式来完成不同的统计计算。使用“设计”视图是建立和修改查询的最主要的方法。2019年12月20日星期五3.3使用设计视图创建查询查询“设计”视图,分上下两半部分。上半部分是表或查询显示区,排列着在“显示表”对话框中选择的表或查询,以及这些表之间的关系;下半部分是查询设计网格,用来指定查询所用的字段、排序方式、是否显示、汇总计算和查询条件等。2019年12月20日星期五3.3使用设计视图创建查询查询设计网格的每一非空白列对应着查询结果中的一个字段。网格的行标题表明了字段在查询中的属性或要求。•字段:设置字段或字段表达式,用于限制在查询中使用的字段。•表:指定所选定的字段来源于哪一张表。•排序:确定是否按字段排序,以及按何种方式排序。•显示:确定是否在数据表中显示该字段。若在显示行有“对勾”标记,则表明在查询结果中显示该字段内容,否则将不显示其内容。•条件:指定查询的限制条件。通过指定条件,限制在查询结果中可以出现的记录或限制包含在计算中可以出现的记录。•或:指定逻辑“或”关系的多个限制条件。2019年12月20日星期五3.3.1创建不带条件的查询(1)基本查询若从表中选取若干或全部字段的所有记录,而不包含任何条件,则称这种查询为基本查询。例题3-6查询学生的专业情况,并显示学生的姓名、性别及班级名称,专业。2019年12月20日星期五选择建立查询的表/查询3.3.1创建不带条件的查询在“选择查询”设计视图窗口的“字段”栏中添加和插入所需的字段;设置排序字段;在“显示”栏里指定查询中要显示的字段,默认为显示全部;最后单击快速访问工具栏上的“保存”按钮,进行保存。2019年12月20日星期五3.3.2创建带条件的查询(2)通过设置条件限制要检索的记录例题3-7查询“学号”为“20100103”的学生的成绩信息,显示“学号”、“姓名”、“课程名称”,“分数”各字段信息。2019年12月20日星期五3.3.3运行查询的方法•在数据库窗口“查询”对象下,双击要运行的查询。•选择要运行的查询后,单击右键选择“打开”命令。•在查询的“设计”视图中,单击“执行”按钮。•在查询的“设计”视图中,单击“视图”按钮。2019年12月20日星期五3.3.3修改查询1.编辑查询中的字段(1)添加字段(2)删除字段(3)移动字段(4)重命名查询字段(键入新的字段名,在新的字段名与原字段名之间键入一个冒号即可)【例3-8】将“多表查询示例”数据表视图结果中的标题“分数”修改为“课程成绩”。2.编辑查询中的数据源(1)添加表或查询(2)删除表或查询(3)排序查询的结果2019年12月20日星期五3.3.4设置查询准则进行条件查询在“设计”视图的“条件”行输入查询准则,这样Access2010在运行查询时,会从指定的表中筛选出符合条件的记录。准则是查询或高级筛选中用于识别所需特定记录的限制条件。使用准则可以实现快速数据检索,使用户只看到想要得到的数据。Access2010中的查询准则主要是通过常量、运算符和函数这3种形式组合成查询条件表达式。2019年12月20日星期五3.3.4设置查询准则进行条件查询准则中的常量常量是组成查询准则的基本元素,Access2010中包括数字型常量、文本型常量、日期型常量和是/否型常量等4种。数字型常量:直接键入数值,比如:123、-123、123.456。文本型常量:直接键入文本或者以双引号括起来,比如:英语或“英语”。可用“*”和“?”通配符日期型常量:直接键入或者用符号“#”括起来,比如:2012-1-14、#2012-1-24#。是/否型常量:yes、no、true、false。空字段值:“IsNull”表示为空的字段值。“IsNotNull”表示不为空的字段值。例如,如果“出生日期”字段的准则行输入“IsNull”表示查找该字段值为空的记录。2019年12月20日星期五3.3.4设置查询准则进行条件查询准则中的运算符运算符也是组成查询准则的基本元素,Access2010中包括数学运算符、关系运算符、连接运算符、逻辑运算符和特殊运算符等5种。数学运算符:+、—、*、/关系运算符:=、、=、、=、连接运算符:&表示将两个文本值连接起来(文本须用引号括起来表示)。逻辑运算符:And、Or、Not。2019年12月20日星期五3.3.4设置查询准则进行条件查询特殊运算符BetweenAandB:用于指定A到B之间的范围,A和B可以是数字型、日期型和文本型。In:指定一系列值的列表。Like:指定某类字符串,可以配合使用