2、试编写程序,完成以下功能: 1、依次录入五名同学的姓名及成绩,并将其加入字典中,将姓名作为键,成绩作为值。假设用户输入的姓名均不重复且成绩为整数。 2、根据用户输入的学生姓名,在字典中查询相应的成绩并输出。如学生不存在,输出‘error’
第1题:
计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是 ______。
A.SELECT AVG(成绩)FROM 选课 WHERE 姓名=“刘明”
B.SELECT AVG(成绩)FROM 学生,选课 WHERE 姓名=“刘明”
C.SELECT AVG(成绩)FROM 学生,选课 WHERE 学生.姓名=“刘明”
D.SELECT AVG(成绩)FROM 学生,选课 WHERE 学生.学号=选课.学号 AND姓名=“刘明”
第2题:
用SQL语句查询课程成绩在60分以上的学生姓名,并将结果按姓名降序存入表文件res.dbf中。
(2)编写my.prg程序,实现的功能:先为“学生成绩”表增加一个“学生平均成绩”字段,类型为 N(6,2),根据“学生选课”表统计每个学生的平均成绩,并写入“学生成绩”表新的字段中。
(2)在命令窗口中输入命令:MODIFY COMMAND my在程序文件编辑器窗口输入如下程序段:
******文件my.prg中的程序段********
ALTER TABLE学生成绩ADD平均成绩N(62)
SELECT学号AVG(成绩)AS平均成绩;
FROM学生选课;
GROUP BY学号;
INTO CURSOR atemp
DO WHILE NOT EOF()
UPDATE学生成绩SET平均成绩=atemp.平均成绩;
WHERE学生成绩.学号=atemp.学号
SKIP
ENDDO
***********************************
在命令窗口输入命令:DO my运行程序。执行程序后“学生成绩”中的记录如图3-42所示。

(2)在命令窗口中输入命令:MODIFY COMMAND my,在程序文件编辑器窗口输入如下程序段:
******文件my.prg中的程序段********
ALTER TABLE学生成绩ADD平均成绩N(6,2)
SELECT学号,AVG(成绩)AS平均成绩;
FROM学生选课;
GROUP BY学号;
INTO CURSOR atemp
DO WHILE NOT EOF()
UPDATE学生成绩SET平均成绩=atemp.平均成绩;
WHERE学生成绩.学号=atemp.学号
SKIP
ENDDO
***********************************
在命令窗口输入命令:DO my,运行程序。执行程序后,“学生成绩”中的记录,如图3-42所示。
解析:本大题两个小题主要考查的是SQL语句的应用,设计过程中可利用临时表来存放查询结果,再利用DO循环语句对表中的记录逐条更新。
第3题:
在关系Student(学号,姓名,系名,课程号,成绩)中,查询至少选修了四门课程的学生学号、姓名及平均成绩的SElECT语句应该是:
SELECT学号,姓名,AVC((254))AS平均成绩
FROM Student
CROUP BY学号
HAVING (255)
A.成绩
B.姓名
C.系名
D.课程号
第4题:
在成绩表中要求按“物理”降序排列,并查询前两名的学生姓名,正确的语句是( )。
A.SELECT 姓名 TOP 2 FROM 成绩表 WHERE 物理 DESC
B.SELECT 姓名 TOP 2 FROM 成绩表 FOR 物理 DESC
C.SELECT 姓名 TOP 2 FROM 成绩表 GROUP BY 物理 DESC
D.SELECT 姓名 TOP 2 FROM 成绩表 ORDER BY 物理 DESC
第5题:
使用如下三个数据库表: 学生(学号C(8),姓名C(8),性别C(2),班级C(8)) 课程(课程编号C(8),课程名称C(20)) 成绩(学号C(8),课程编号C(8),成绩N(5,1)) 查询所有选修了“高等数学”的学生的“相关”成绩,要求信息中包括学生姓名和成绩,并按成绩由低到高的顺序排列,下列语句正确的是( )。
A. SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC
B. SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC
C. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; GROUP BY成绩.成绩ASC
D. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC
第6题:
考生文件夹下存在一个数据库文件“samp2.mdb”,里面已经设计好表对象“tCourse”、“tGrade”和“tStudent”,试按以下要求完成设计:
(1)创建一个查询,查找并显示“姓名”、“政治面貌”和“毕业学校”三个字段的内容,所建查询名为“qT1”。
(2)创建一个查询,计算每名学生的平均成绩,并按平均成绩降序依次显示“姓名”、“平均成绩”两列内容,其中“平均成绩”数据由统计计算得到,所建查询名为“qT2”。假设:所用表中无重名。
(3)创建一个查询,按输入的班级编号查找并显示“班级编号”、“姓名”、“课程名”和“成绩”的内容。其中“班级编号”数据由计算得到,其值为“tStudent”表中“学号”的前6位,所建查询名为“qT3”;当运行该查询时,应显示提示信息:“请输入班级编号:”。
(4)创建一个查询,运行该查询后生成一个新表,表名为“90分以上”,表结构包括“姓名”、“课程名”和“成绩”三个字段,表内容为90分以上(含90分)的所有学生记录,所建查询名为“qT4”;要求创建此查询后,运行该查询,并查看运行结果。
步骤3:单击工具栏中的“保存”按钮保存为“qT1”单击“确定”按钮关闭设计视图。
(2)【操作步骤】
步骤1:选中“查询”对象单击“新建”按钮选中“设计视图”单击“确定”按钮。在“显示表”对话框中双击表“tStudent”和“tGrade”关闭“显示表”对话框。
步骤2:分别双击“tStudent”表“姓名”、“tGrade”表“成绩”字段。
步骤3:执行【视图】→【总计】菜单命令在“成绩”字段的“总计”行下拉列表中选中“平均值”在“姓名”字段的“总计”行下拉列表中选中“分组”。
步骤4;在“成绩”字段的“字段”行前面添加“平均成绩:”字样在“排序”行下拉列表中选中“降序”。如图2-241所示。
步骤5:单击工具栏中的“保存”按钮保存为“qT2”单击“确定”按钮关闭设计视图。
(3)【操作步骤】
步骤1:选中“查询”对象单击“新建”按钮选中“设计视图”单击“确定”按钮。在“显示表”对话框中分别双击表“tStudent”、“tOrade”、“tCourse”关闭“显示表”对话框。
步骤2:在“字段”行第一列输入:班级编号:Left([tStudent]![学号]6)”在“条件”行输入:[请输入班级编号:1。如图2-242所示。
步骤3:分别双击“tStuednt”表“姓名”、“tCourse”表“课程名”和“tGrade”表“成绩”字段。
步骤4:单击工具栏中的“保存”按钮保存为“qT3”单击“确定”按钮关闭设计视图。
(4)【操作步骤】
步骤1:选中“查询”对象单击“新建”按钮选中“设计视图”单击“确定”按钮。在“显示表”对话框中双击表“tStudent”、“tGrade”和“tCourse”关闭“显示表”对话框。
步骤2:执行【查询】→【生成表查询】菜单命令在弹出的对话框中输入:90分以上单击“确定”按钮。
步骤3:分别双击“tStudent”表“姓名”、“tCourse”表“课程名”和“tGrade”表“成绩”字段。在“成绩”字段的“条件”行输入:>=90。
步骤4:单击工具栏中的“运行”按钮在弹出的对话框中选择“是”按钮运行查询。如图2-243所示。
步骤5:单击工具栏中的“保存”按钮保存为“qT4”单击“确定”按钮关闭设计视图。

步骤3:单击工具栏中的“保存”按钮,保存为“qT1”,单击“确定”按钮,关闭设计视图。
(2)【操作步骤】
步骤1:选中“查询”对象,单击“新建”按钮,选中“设计视图”,单击“确定”按钮。在“显示表”对话框中双击表“tStudent”和“tGrade”,关闭“显示表”对话框。
步骤2:分别双击“tStudent”表“姓名”、“tGrade”表“成绩”字段。
步骤3:执行【视图】→【总计】菜单命令,在“成绩”字段的“总计”行下拉列表中选中“平均值”,在“姓名”字段的“总计”行下拉列表中选中“分组”。
步骤4;在“成绩”字段的“字段”行前面添加“平均成绩:”字样,在“排序”行下拉列表中选中“降序”。如图2-241所示。
步骤5:单击工具栏中的“保存”按钮,保存为“qT2”,单击“确定”按钮,关闭设计视图。
(3)【操作步骤】
步骤1:选中“查询”对象,单击“新建”按钮,选中“设计视图”,单击“确定”按钮。在“显示表”对话框中分别双击表“tStudent”、“tOrade”、“tCourse”,关闭“显示表”对话框。
步骤2:在“字段”行第一列输入:班级编号:Left([tStudent]![学号],6)”,在“条件”行输入:[请输入班级编号:1。如图2-242所示。
步骤3:分别双击“tStuednt”表“姓名”、“tCourse”表“课程名”和“tGrade”表“成绩”字段。
步骤4:单击工具栏中的“保存”按钮,保存为“qT3”,单击“确定”按钮,关闭设计视图。
(4)【操作步骤】
步骤1:选中“查询”对象,单击“新建”按钮,选中“设计视图”,单击“确定”按钮。在“显示表”对话框中双击表“tStudent”、“tGrade”和“tCourse”,关闭“显示表”对话框。
步骤2:执行【查询】→【生成表查询】菜单命令,在弹出的对话框中输入:90分以上,单击“确定”按钮。
步骤3:分别双击“tStudent”表“姓名”、“tCourse”表“课程名”和“tGrade”表“成绩”字段。在“成绩”字段的“条件”行输入:>=90。
步骤4:单击工具栏中的“运行”按钮,在弹出的对话框中选择“是”按钮,运行查询。如图2-243所示。
步骤5:单击工具栏中的“保存”按钮,保存为“qT4”,单击“确定”按钮,关闭设计视图。
解析:(1)本题考查简单的条件查询设计方法。第7题:
设有一个关系Student(学号,姓名,系名,课程号,成绩),查询至少选修了4门课程的学生学号、姓名及平均成绩的SELECT语句应该是:
SELECT学号,姓名,AVG(成绩) AS平均成绩
FROM Student
GROUP BY(1)
HAVING(2)
A.学号
B.姓名
C.系名
D.课程号
第8题:
计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是
A.SELECTAVG(成绩)FROM选课WHERE姓名="刘明"
B.SELECTAVG(成绩)FROM学生,选课WHERE姓名="刘明"
C.SELECTAVG(成绩)FROM学生,选课WHERE学生.姓名="刘明"
D.SELECTAVG(成绩)FROM学生,选课WHERE学生.学号=选课.学号AND姓名="刘明"
第9题:
有三个关系, student:Sno(学号),Sname(姓名),Ssex(性别),Sage(年龄),Sdept(所在系)。 Course:Cno(课程号),Cname(课程名),Credit(学分),Semester(开课学期),Pcno(直接先修课)。 SC://Sno(学号),Cno(课程号),Grade(成绩)。
试用关系代数表达式完成下列查询: (1)查询“信息管理系”学生的选课情况,列出学号、姓名、课程号和成绩。 (2)查询“数据库基础”课程的考试情况,列出学生姓名、所在系和考试成绩。 (3)查询考试成绩高于80分的学生的姓名、课程名和成绩。 (4)查询计算机系没选VB的学生姓名。
略
第10题:
在学生成绩表中,若要查询姓“张”的女同学的信息,正确的条件设置为()
第11题:
SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课WHERE学生.学号=选课.学号AND选课.成绩IS NULL
SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课WHERE学生.学号=选课.学号AND选课.成绩=NULL
SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课ON学生.学号=选课.学号WHERE选课.成绩IS NULL
SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课ON学生.学号=选课.学号WHERE选课.成绩=NULL
第12题:
SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩>=ALL(SELECT成绩FROM选课)
SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号=101)
SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩>=ANY(SELECT成绩FROM选课WHERE课程号=101)
SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩>=(SELECT成绩FROM选课WHERE课程号=101)
第13题:
有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
第14题:
在考生文件夹下“student.mdb”数据库中有student、选课表和课程表。
(1)以student、选课表和课程表为数据源,创建参数查询“按ID查询成绩”,实现输入学生的ID显示学生成绩,参数提示为“请输入学生ID',结果显示学生姓名、课程名称和成绩字段。查询结果如图所示。

(2)以student、选课表和课程表为数据源,创建生成表查询成绩表,查询每个学生选
课的成绩,结果显示学生姓名、课程名称和成绩字段?生成成绩表如图所示。


第15题:
在学生成绩表中,如果需要根据输入的学生姓名查找学生的成绩,需要使用的是( )查询。
第16题:
查询所有选修了“计算机基础”的学生的“计算机基础”成绩,要求得到的信息包括学生姓名和成绩,并按成绩由高到低的顺序排列,下列语句正确的是
A.SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC
B.SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC
C.SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; GROUP BY成绩.成绩DESC
D.SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC
第17题:
假设学生表已在当前工作区打开,其当前记录的“姓名”字段值为“李三”(C型字段)。在命令窗口输入并执行如下命令: 姓名=姓名一”成绩” ?姓名 屏幕上会显示( )。
A. 李三
B. 李三成绩
C. 成绩
D. 李三一成绩
第18题:
第下列各题使用如下数据表。 学生.DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D) 选课.DBF:学号(c,8),课程号(C,3),成绩(N,5,1) 计算刘明同学选修的所有课程的平均成绩,正确的SQL 语句是( )。
A.SELECT AVG(成绩)FROM选课WHERE姓名=”刘明“
B.SELECT AVG(成绩)FRM学生,选课WHERE姓名=”刘明”
C.SELECT AVG(成绩)FROM学生,选课WHERE学生.姓名=”刘明”
D.SELECT AVG(成绩)FROM学生,选课WHERE学生.学号=选课.学号AND姓名=”刘明”
第19题:
在成绩表中要求按“物理”降序排列,并查询前两名的学生姓名,正确的语句是( )。
A.SELECT姓名TOP 2 EROM成绩表WHERE物理 DESC
B.SEl.ECT姓名TOP 2 FROM成绩表FOR物理DFAKC
C.SELECT姓名TOP 2 FROM成绩表GROUP BY物 理DESC
D.SELECT姓名TOP 2 FROM成绩表ORDER BY物 理DESC
第20题:
第21题:
设学生成绩表的结构为(学号、课程号、成绩),程序运行界面如图1所示。进入界面后,用户首先选择学号(Combo1)、课程号(Combo2),姓名(Text1)和课程名(Text2)从数据库中自动读入;然后,用户输入对应的成绩(Text3),点击“确认”按钮后,将结果插入到学生成绩表中。请补充完成下列程序代码。








略
第22题:
用户定义函数“stuinfo(参数)”功能是根据输入学生的学号,通过SELECT命令查询得到学生姓名及各科成绩,该函数属于()。
第23题:
标量函数
内嵌表值函数
多语句表值函数
字符函数
第24题:
SELECT学号,姓名,课程代码,总评成绩FROM学生,成绩ON学生.学号=成绩.学号WHERE学号=’2008001001’
SELECT学号,姓名,课程代码,总评成绩FROM学生INNER JOIN成绩WHERE学生.学号=成绩.学号AND学号=’2008001001’
SELECT学号,姓名,课程代码,总评成绩FROM学生LEFT OUTER JOIN成绩ON学生.学号=成绩.学号WHERE学号=’2008001001’
SELECT学号,姓名,课程代码,总评成绩FROM学生,成绩WHERE学生.学号=成绩.学号AND学号=’2008001001’