750 likes | 931 Views
实验 3 评讲. 关系创建的方法小结 : (1) 分析数据库中表间的关系 : 一多一 ; 一对多 (2) 在一方表的公共字段上创建主键 (3) 在关系窗口中建立关系 注意 : 拖动到对应的公共字段 , 设置实施参照完整性 关系创建非常重要:是多表查询的基础 举例 : 课程 学生 成绩 学生家庭 举例 : 借书证 借阅登记 图书 思考 : 学生 专业. 第 5 章 查 询. 本章要点. 什么是查询 使用查询向导创建查询 使用设计视图创建和修改查询 创建动作查询 SQL 查询. 5.1 什么是查询.
E N D
实验3 评讲 • 关系创建的方法小结: (1)分析数据库中表间的关系:一多一;一对多 (2)在一方表的公共字段上创建主键 (3)在关系窗口中建立关系 注意:拖动到对应的公共字段,设置实施参照完整性 • 关系创建非常重要:是多表查询的基础 • 举例:课程\学生\成绩\学生家庭 • 举例:借书证\借阅登记\图书 • 思考:学生\专业
本章要点 • 什么是查询 • 使用查询向导创建查询 • 使用设计视图创建和修改查询 • 创建动作查询 • SQL查询
5.1 什么是查询 1、什么是Access的 查询 • 问题的引入: 应用举例 (1)在库存表中,按”进货日期”查询进货记录 (2)库存小于5的库存货品查询 (3)统计每个供应商供应的货品的种类 (4)将”尚利公司”的所有商品进货单价提高5角
5.1 什么是查询 1、什么是Access的 查询 • 查询是数据库中的一个对象,允许用户依据准则或查询条件获取表中的记录信息 • 数据库中保存查询准则,查询结果是临时的数据集合,查询数据来自于表或查询 • 查询的基本作用 • 通过查询浏览表中的数据,分析数据或修改数据。 • 对数据进行统计、排序、计算和汇总。 • 参数查询----实现交互式的查询。 • 动作查询----实现表数据的增加、删除、更新 • 查询的结果可以为窗体、报表、查询提供数据。
2、Access查询的运行方式 (1)创建查询的方法 • 利用【查询向导】 • 创建简单查询、交叉表查询、查找重复项查询和查找不匹配项查询。 • 利用【设计视图】 • 使用查询设计视图创建和修改各类查询,是建立查询最主要的方法。它可以帮助你更好地理解数据库中表之间数据的关系。 • SQL查询: • 由用户采用SQL(结构化查询语言)语言编写查询命令。由【查询向导】和【设计视图】建立的查询实质上就是用SQL语言编写查询命令 (2)运行查询
3、查询的类型 Access支持5种查询方式: • 选择查询---从一个或多个表中检索数据并在数据表中显示记录集。 • 操作查询---提示用户输入用来定义查询的值 • 交叉表查询---同时使用行标题和列标题排列记录集 • 参数查询---创建新表或更改现有表。 • SQL查询---使用 SQL 语句所创建的高级查询。
5.2 使用查询向导建立查询 1、使用查询向导建立简单查询 • Access默认的查询,它可以在一个或多个表、查询中查找相关记录。 • 在数据库窗口中选择“使用向导创建查询”,或选择新建查询对话框中的“简单查询向导”,启动“简单查询向导” 。
5.2 使用查询向导建立查询 [示例1—单表查询]:查询学生表的学号,姓名,性别,班级 步骤1:启动向导 步骤2:从表或查询中选择字段
5.2 使用查询向导建立查询 [示例1—单表查询]:查询学生表的学号,姓名,性别,班级 步骤3:选择明细或汇总 步骤4:设置查询标题 保存查询啦!!
5.2 使用查询向导建立查询 [示例1—单表查询]:查询学生表的学号,姓名,性别,班级 步骤5:运行查询,两种方法: (1)在数据库窗口中选择查询名,单击“打开” (2)在数据库窗口中选择查询名,单击“设计”,再单击 运行查询 注意:查询的数据来自于表,当表中数据发生改变,查询的结果也会改变
5.2 使用查询向导建立查询 [示例2—多表查询]:查询学生表的学号,姓名,班级,课程代码,课程名称,成绩 [分析]该查询涉及到多个表(学生,课程和成绩) [多表查询的步骤] (1)建立表间的关系 (2)设计查询 (3)运行查询
5.2 使用查询向导建立查询 [示例2—多表查询]:查询学生表的学号,姓名,班级,课程代码,课程名称,成绩
5.2 使用查询向导建立查询 [示例2—多表查询]:查询学生表的学号,姓名,班级,课程代码,课程名称,成绩 测试:如果多表查询不创建表间关系,可否实现查询
5.2 使用查询向导建立查询 课堂练习: 1、P65:练习5-1 2、[练习1—多表查询]: 查询学生的选课情况,要求显示姓名,课程名称,
5.2 使用查询向导建立查询 [示例3—汇总查询]:查询每个学生的平均成绩,显示学号,姓名,平均成绩
5.2 使用查询向导建立查询 [示例3—汇总查询]:查询每个学生的平均成绩,显示学号,姓名,平均成绩
课堂练习: [练习2—汇总]: 查询每门课程的平均成绩,要求显示课程代码,课程名称和平均成绩,最高分, 最低分
2、交叉表查询 • 交叉表查询是将表或查询中的某些字段中的数据作为新的字段,按照另外一种方式查看数据的查询,并可在行与列的交叉处对数据进行各种计算。 • 交叉表查询向导 • 在新建查询对话框中选中“交叉表查询向导”,单击确定按钮,打开交叉表查询向导 ,然后依次按提示选择。 • 例如,在交叉表查询结果中可用行来代表学生姓名,列表示课程名称,而网格中的数据则是学生的课程成绩。
2、交叉表查询 • [示例4] 按专业显示各门课程的平均分 (1)首先建立查询”专业课程成绩查询, 包括专业名称,课程名称和分数 (2)再建立交叉表查询
2、交叉表查询 • [示例4] 按专业显示各门课程的平均分 (1)首先建立查询”专业课程成绩查询, 包括专业名称,课程名称和分数 分析:该查询涉及学生表,专业表,课程表和成绩表, 查询结果包括专业名称,课程名称和分数
2、交叉表查询 • [示例4] 按专业显示各门课程的平均分 (2)再建立交叉表查询
2、交叉表查询 • [示例4] 按专业显示各门课程的平均分 专业名称作为行标题
2、交叉表查询 • [示例4] 按专业显示各门课程的平均分 课程名称作为列标题
2、交叉表查询 • [示例4] 按专业显示各门课程的平均分 求分数的平均值
2、交叉表查询 • [示例5] 例5-2
课堂练习: P68 练习5-2 (1)(2)
3、创建查找重复项查询 • 查找重复项查询可以快速查找到表中的重复字段。 • 通过检查重复记录,帮助用户判断这些信息是否正确,决定哪些是需要保存的,哪些是需要删除的。 • 例:查找同年同月同日出生的学生情况。
4、创建查找不匹配项查询 • 在具有一对多关系的两个表中对于“一”方的表中的每一条记录,在“多”方表中可能有一条或多条甚至是没有记录与之对应的,使用不匹配查询就可以帮助用户查找出那些在“多”方中没有对应记录的“一”方表中的记录。 • 通过不匹配项查询,可能会帮助用户查找到遗漏的操作。 • 例:找出没有成绩的学生名单,找出【学生】表和【成绩】表不符的记录。 • 即查找在[成绩]表(多方)中没有成绩记录的[学生]表(一方)中的学生信息
4、创建查找不匹配项查询 [示例6]找出没有成绩的学生名单,找出【学生】表和【成绩】表不符的记录。 • 即查找在[成绩]表(多方)中没有成绩记录的[学生]表(一方)中的学生信息 (1)新建查询
4、创建查找不匹配项查询 [示例6]找出没有成绩的学生名单,找出【学生】表和【成绩】表不符的记录。 (2)选择一方表
4、创建查找不匹配项查询 [示例6]找出没有成绩的学生名单,找出【学生】表和【成绩】表不符的记录。 (3)选择多方表
4、创建查找不匹配项查询 [示例6]找出没有成绩的学生名单,找出【学生】表和【成绩】表不符的记录。 (4)确定匹配字段
4、创建查找不匹配项查询 [示例6]找出没有成绩的学生名单,找出【学生】表和【成绩】表不符的记录。 (5)显示字段
课堂练习: (1)查询同名的学生的学号,姓名,性别,专业代码 (2)查询没有学生选修的课程的课程代码和课程名称
实验4 评讲 • 1 查询标题不能以空格开头 • 2交叉表查询中如果涉及多个表的字段,需要先建立简单查询包括所有的字段,再在此基础上建立交叉表查询 • 3关于计数统计的理解:练习5-2的第2题;查询5-3 • 4 注意交叉表的行和列
5.3 使用设计视图创建和修改查询 1、使用设计视图建立查询 • 使用【设计视图】是建立和修改查询的最主要的方法。 • [例5-5]:查询成绩不及格学生名单,显示的内容包括:学号、姓名、班级、课程代码、课程名称、学分和成绩。
单击数据库窗口的【新建】按钮,在【新建查询】窗口的列表框中选择【在设计视图中创建查询】,弹出 【选择查询】窗口和【显示表】对话框 ; • 添加表或查询 ;
数据表/查询显示区 查询设计区 【设计视图】窗口
设置排序字段 • 保存查询
2、设置查询条件 • 条件表达式 • 常量的写法 :123、123.4、“英语”、#2003-10-1#、yes • 运算符 • 算术运算符,包括+、-、*、/,也就是常用的四则运算符; • 关系运算符包括>、<、>=、<=、<>,其结果是逻辑值True或者False; • 逻辑运算符包括and、or、not等 • 连接运算符&
2、设置查询条件 • 举例: • >=60 and <=100 • <=60 or >=100 • X*Y • 5/2 • “计算机应用” OR “高等数学”
Between A and B:用于指定A 到B 之间范围,A和B可以是数字型、日期型和文本型而且类型相同。 • In:指定某一系列值的列表。例如, In (“北京”, “南京”, “西安”) • Like:指定某类字符串,配合使用的通配符,通配符?表示任何单一字符,通配符*表示零个或多个字符;通配符#表示任何一个数字。例如,Like “表#”则字符串”表1”、”表2”满足这个条件,而”表A”不满足条件 。
条件栏: • 例如查询”英语”不及格的学生的选课情况 显示学号,姓名,课程名称,分数 显示的条件是:名称= “英语”and 分数<60
使用【表达式生成器】 • 练习5-6 :各种查询条件的设置
3、参数查询 • 参数查询可以在运行查询的过程中根据参数的值自动的设定查询规则,所以在执行查询时之前,系统会要求输入参数的值。 • 例如,在执行成绩查询时,要求先输入学生的姓名,才能显示相应的数据。[例5-6][例5-7][例5-8][例5-9]
4、设计计算列 • 在查询中可以增加新列,该列没有自己的数据,它的数据源来自其他字段,按照用户设置的公式,产生该列的数值,这些列叫做计算列。 • 比如在查询中增加【年龄】列,它的数据源来自【出生日期】字段;比如根据【高考成绩】表建立一个查询,然后增加【总分】列,为各门成绩的总计。 • [例5-11]
5、设计汇总查询 • 汇总查询可以对查询中的某列产生总和、总平均等计算。(sum,avg,count,min,max) • 例如:以班级和课程为单位,统计各门课程的平均成绩。