查询的创建与修改
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三查询的创建与修改
1.实验目的
通过本实验练习,熟练掌握查询的意义和用法,并能根据需要设计制作查询。
2.实验要求:
利用“教学管理”数据库中的数据创建查询,熟练掌握
1)各种创建查询向导的使用。
2)条件查询和使用通配符查询的方法。
3)查询计算的功能。
4)交叉表查询的方法。
5)参数查询的创建和使用。
6)操作查询中的生成表查询方法、删除查询、更新查询、追加查询等方法。
7)查询过程中各种运算符、特殊运算符、函数的使用。
8)SQL查询的运用。
3.实验内容及步骤
1)打开D盘ST+学号文件夹中的“教学管理”数据库文件。
要求“学生”表,“选课成绩”表,“课程”表,“教师”表之间已建立好关系。
2)利用简单查询向导,以“学生”表为数据源创建查询,查询“学生”表
中所有学生的学号、姓名、性别和年龄,查询结果按年龄降序排序,查询保
存为“学生信息查询”。
3)利用简单查询向导,以“学生”表、“课程”表和“选课成绩”表为数
据源,查询每名学生的“学号”、“姓名”、“课程名称”、“学分”、“成绩”等字段,查询保存为“学生选课成绩查询”。
4)使用“查询设计视图”建立上例,查询保存为“学生选课成绩查询2”,
对比查询向导和查询设计视图的不同。
5)使用查询设计视图,以“教师”表为数据源,查询1969年参加工作的男
教师的:姓名、性别、工作时间、学历、职称、系别、和联系电话,查询保
存为“69年工作的男教师”。
提示:在“性别”字段列的“准则”单元格中输入条件“男”,在“工
作时间”字段列的“准则”单元格中输入条件“>=#1969-1-1# And
<=#1969-12-31#”或“between #1969-1-1# And #1969-12-31#”
6)上例操作中,如果要求查找结果中不显示“工作时间”字段,如何操作?
如果对“1969年”的查询条件用Year()函数来实现,如何操作?
7)利用查询设计视图,以“教师”表为数据源,利用查询的计算功能,查询
并统计1990年参加工作的教师人数,查询保存为“90年参加工作的人数”,
查询过程设置如图3-1所示,查询结果如图3-2所示。
图3-1:查询1990年参加工作的人数
图3-2 图3-3
8)同样查询90年参加工作的教师人数,保存为“统计90年参加工作的人数”,但查询结果要求如图3-3所示。
(提示:以上例创建的查询“90年参加工作的人数”为数据源,新增加一个字段“90年参加工作的人数”,它的值来自“教师编号之计数”的值。
)
9)利用分组查询并计算的功能,查询统计“学生”表中男生人数和女生人数,查询名为“男女生人数”,查询结果如图3-4所示:
图3-4:男女生人数
10)查询每个学生所在的班级,姓名,性别,年龄.注意:学号中的前6位表示班级(即班级:left(学号,6)),查询保存为“班级查询”。
11) 以“学生”表和“选课成绩”表为数据源,查询平均分低于所在班平均分的学生的班级、姓名和平均成绩。
操作提示:
a)先创建一个查询“每班平均分”,查询结果如图3-5所示:
图3-5:每班平均成绩的查询结果
b)使用同样的方法再创建一个查询“每名同学平均成绩”,查询结果如图
3-6所示:
图3-6:每名同学平均成绩
c)根据上面a和b两个步骤中建立的两个查询“每班平均分”和“每名同学平均成绩”,查询平均分低于所在班平均分的学生,保存为“平均分低于本班平均分的学生”,查询设置如图3-7所示:
图3-7 :平均分低于所在班平均分的同学
12)以第7小题中已建立的“班级查询”为数据源,使用交叉表查询向导查询统计每班男女生人数,查询保存为“每班男女生”,查询结果如图3-8
所示:
图3-8:每班男女生人数交叉表查询
13)以“学生”表,“选课成绩”表,“课程”表为数据源,使用查询设计视图创建一个交叉表查询,查询显示每个同学的姓名、课程名称、成绩,查询保存为“学生选课成绩交叉表”,查询结果如图3-9所示:
图3-9:选课成绩交叉查询
14)以“学生选课成绩交叉表”查询为数据源,利用查询设计视图,查询并计算每位同学的总成绩。
其中总成绩=高等数学+会计原理+计算机实用软件+英语,查询保存为“各科成绩总计”。
15)以“学生”表为数据源,使用查询设计视图查询所有姓“李”的同学的“学号”、“姓名”、“性别”、“年龄”,查询保存为“姓李的学生”。
16)以“学生”表为数据源,查询“学生”表中姓名为空值的记录,查询保存为“姓名为空值的学生”。
17)以“学生”表,“选课成绩”表,“课程”表为数据源,创建参数查询:运行查询时,使其根据输入的姓名和课程名称查询该同学该课程的成绩,查询保存为“按姓名和课程名参数查询”。
例如运行查询时,在“输入姓名”参数框中输入“李元”,“课程名”参数框中输入“高等数学”,查询该同学该课程成绩。
18)创建生成表查询,以“教师”表为数据源,将1970年以后工作的教师信息(教师编号,姓名,性别,工作时间,职称,学历,系别)存储到一个新表“1970年以后工作的教师”,查询保存为“生成表查询”。
生成新表
后,按F11键,切换到数据库窗口,单击“表”对象,查看通过查询生成的表。
19) 在“教学管理”数据库中对“选课成绩”表做一个备份,名字为“选课成绩表2”。
利用删除查询,将“选课成绩表2”中成绩低于60分的记录删除,查询保存为“删除低于60分的记录”,运行该查询后,打开“选课成绩表2”,观察其记录变化。
20) 在“教学管理”数据库中对“教师”表做一个备份,名字为“教师表2”。
利用更新查询,将“教师表2”中所有1980年以前参加工作的教师的职称改“教授”,查询命名为“更新查询”。
观察“教师表2”的变化。
21)利用追加查询,将教师表中1960年以后,1970年以前参加工作的教师信息(教师编号,姓名,性别,工作时间,职称,学历,系别)添加到已建立的“1970年以后工件的教师”表中,查询保存为“追加查询”。
观察“1970年以后工作的教师”表的记录变化。
22)利用SQL语句,查询每个学生的学号、姓名、性别和年龄,所建查询为“Sql1”
23)利用SQL语句,查询所有男学生的学号、姓名、课程课程名称、成绩,所建查询保存为“SQL查询1”,运行查询,观察结果。
SQL语句如下:SELECT 学生.学号, 学生.姓名, 课程.课程名称, 选课成绩.成绩
FROM 学生 INNER JOIN (课程 INNER JOIN 选课成绩 ON 课程.课程编号 = 选课成绩.课程编号) ON 学生.学号 = 选课成绩.学号
WHERE (((学生.性别)="男"));
24)利用SQL查询创建子查询,查找年龄小于平均年龄的学生,并显示其“姓名”,“学号”,所建查询名为“SQL查询2”。
25)利用SQL查询创建联合查询,同时查询显示“1970年以后工作的教师”表中教师信息和“教师”表中1960年以前工作的教师的教师信息。
(教师编号,姓名,性别,工作时间,学历),查询保存为联合查询。
4.实验思考题
1.查询的数据源可以来自哪些对象?若有对象同时作为数据源,事先应做什么准备?
2.如何在查询中计算一个新字段?
3.如何创建操作查询?它的运行结果有何特别之处?
4.如何创建参数查询?它与一般的条件查询有何不同?。