1上节回顾•两个概念–数据库–表•五个操作–创建数据库–创建表–查阅向导–有效性规则–创建关系•出现的问题:–主键字段不能为空的含义–无法建关系的原因•表没有关闭•没有相同类型及字段大小相等的关联字段•相关表中出现主表中没有的记录中英文对照英文中文crosstabquery交叉表查询make-tablequery生成表查询parameterquery参数查询selectquery选择查询updatequery更新查询3一、查询概念•所谓查询是指根据用户指定的一个或多个条件,在数据库中查找满足条件的记录。•用户通过查询告诉Access检索条件,Access根据用户提供的条件将查询到的数据反馈给用户。•与表的区别:–表:数据存放的物理集合–查询:是动态数据的集合,存放如何取得数据的方法和定义,是操作的集合,相当于程序4查询的种类•选择查询•参数查询•汇总查询•交叉表查询•重复项查询•不匹配项查询•动作查询–生成表查询–更新查询–追加查询–删除查询选择查询参数查询汇总查询交叉表查询更新查询追加查询删除查询生成表查询动作查询SQL查询查询的类型查询的功能•查看、搜索和分析•追加、更改和删除数据•实现记录的筛选、排序、汇总和计算•用来作为报表和窗体的数据源•对一个和多个表中获取的数据实现联接6二、选择查询•选择查询:–是最常用的查询方法,它的作用是根据用户提供的条件,从一个或多个数据表中检索数据,并且在数据表视图中显示结果。•方法:–简单查询向导–查询设计器7使用“查询设计器”设计查询•添加表/查询,多表(参照完整性)(从哪里查询)–注意:不要选多余的表•添加查询字段(查询什么)–注意:不要选多余的字段•选择查询结果排序•设置字段的显示属性•输入条件(“或”栏是“条件”栏的延续)(什么条件)–直接输入表达式–表达式生成器•设置字段属性(格式、小数位数、标题等)8操作符•逻辑操作符:–And—与、Or—或、Not-非•In、Betweenand、Like操作符:–In(35,36,74,68,99,388)–Between200and500–Like陈*•通配符:–?(任意单一字符)–*(任意若干个字符)–#(任意单个数字)–!(任意单个非!之后所跟的字符)–[0-3](0,1,2,3)–[!A-C](除A,B,C以外的任何字符)9选择查询示例(1)•请使用“Shift-MIS”数据库•示例1:查找-奖学金–查找奖学金在200至500元(包括200、500)同学的学号、姓名、性别及奖学金,以奖学金降序排列,取名为:查找-奖学金。•思考–查找奖学金在200至500元(包括200、500)的男同学的学号、姓名、及奖学金,以奖学金降序排列,取名为:查找-奖学金男10选择查询示例(2)•示例2:查找-党员和奖惩–查找党员或备注不空的同学的学号、姓名、性别、专业、党员、备注,取名为:查找-党员和奖惩。•思考:查找不是党员且备注为空的同学的学号、姓名、性别、专业、党员、备注。是:Yes、True、On、-1否:No、False、Off、0空:Null不空:NotNull或条件写在2行不能写在同一行与条件写在同一行11选择查询示例(3)•示例3:查找-97和05级陈姓同学–查找97和05级的姓陈的同学的所有信息,取名为:查找-97和05级陈姓同学•思考–查找条件有哪几个?–这些查找条件之间的与或关系是怎样的?12选择查询示例(4-1)•示例4:查找-78国贸–查找1978年出生的“国际经济与贸易”专业的所有同学的学号、姓名、出生日期、奖学金字段,取名为:查找-78国贸。13选择查询示例(4-2)•第1种方法:14选择查询示例(4-2)•第2种方法:15选择查询示例(4-3)•第3种方法:16选择查询示例(5)•示例5:查找-不及格–查找成绩不及格学生的学号,姓名,专业,课程和成绩.按专业编号降序排列。•注意:添加两张有关系的表---学生表和成绩表。–思考:查找高等数学成绩不及格学生的学号,姓名,专业和成绩.按专业编号降序排列。17三、汇总查询•汇总查询:–在选择查询的基础上对数据进行分组,并且对查找到的数据记录进行总计、计数、求平均以及其他类型的统计计算。•方法:–向导生成:•利用“简单查询向导”形成汇总查询后,再在QBE视图下进行修改。–QBE视图:•Σ按钮。•一些常用的统计函数:–sum-求和–count-计数–min-最小值–max-最大值18汇总查询示例(1)•示例1:统计人数–统计男女同学的人数,取名为:统计人数。•思考–该查询可能用到哪些表?哪些字段?–哪个字段是分组的依据?对哪个字段进行的统计计算?汇总查询用Groupby子句将查询结果按某一列或多列值分组,值相等的为一组,然后再对分组内的数据按照要求进行其它运算。19汇总查询示例(2)•示例2:统计–统计各专业同学奖学金的平均值、最大值及各专业同学的人数,取名为:统计。•思考–该查询可能用到哪些表?哪些字段?–哪个字段是分组的依据?对哪些字段进行的统计计算?–用到了什么统计函数?–统计获得奖学金人数怎么办?汇总查询示例(2)续•示例(2)设计视图21四、动作查询之更新查询•动作查询是在一次查询执行中,根据不同的条件更改多条记录的查询方法。•动作查询强调的是查询的执行,用“!”命令按钮触发查询的执行。•更新查询:–对一个或多个表中满足特定条件的记录,进行相应字段上值的更新。–如果查询中没有加条件,则所有记录相应字段上的值都改成新值。•注意更新查询只需选择要更新和要设置条件的字段。22更新查询示例•示例:更新奖学金–给获得三好学生的同学奖学金增加500元,取名为:更新奖学金。23动作查询注意问题•动作查询的执行过程是不可逆的,请注意以下四个方面:–动作查询执行后会修改数据表原始数据(为破坏性查询),而且不能撤消,所以,执行前一定要确定查询设计正确与否,最好在执行前做好相关的备份。–动作查询在设置完字段和条件后,切换到“数据表视图”只是看到查询执行之前所选定的记录,一定要执行查询后才可看到结果。–点击工具栏中的“运行”按钮执行动作查询,然后切换到“数据表视图”可看到查询的结果。–动作查询不能多次执行,某种条件下可能造成循环更新或不正确的替代。24五、查询中的计算字段•查询三好学生的零用钱,零用钱为奖学金的十分之一,显示学号、姓名、零用钱,查询名称为“查询零用钱”课堂练习•1.完成本课中的课堂示例;2.查询9月份出生的学生,显示所有字段,查询名称:查询-9月;3.查询备注为空的男同学,显示学号、姓名、专业名称和备注,查询名称:查询-男备注空;4.查找全体党员,列出学号,姓名,性别、党员,查询名称:查询-党员;5.查询不姓陈和不姓王的同学的学号和姓名,查询名称:查询-不姓陈和王;6.查找出生日期为1987年3月的同学的所有字段,查询名称:查询-87年3月;7.查找所有的三好学生的学号、姓名、专业和备注,查询名称:查询-三好学生;8.统计“计算机应用基础”课程的平均分,并将查询的平均分数定位1位小数。9.查询选修了“计算机应用基础”课程的同学的学号、姓名、课程名称和成绩,并按成绩降序排列,查询名称:查询-计算机应用基础课程。26下周教学内容•Access查询(二)谢结束谢