【程序说明】 STD表中含有字段:姓名(C,8),课程名(C,16),成绩(N,3,0),下面一段程序用于显示所有成绩及格的学生信息。
【程序】
SET TALK OFF
CLEAR
USE STD
DO WHIIE (1)
IF (2)
?“姓名:”+姓名,“课程:”+课程名,“成绩:”+STR(成绩,3,0)
ENDIF
(3)
(4)
USE
SET TALK ON
RETURN
(1)
A.EOF()
B.NOT.EOF()
C.BOF()
D.NOT.BOF()
第1题:
用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循环语句对表中的记录逐条更新。
第2题:
使用如下三个数据库表: 学生(学号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
第3题:
在“成绩”表中,检索选修4门以上课程的男生的姓名和平均成绩。“成绩”表中包含学号、姓名、课程名称和成绩4个字段。请将下面的SQL语句补充完整。
SELECT姓名,AVG(成绩)AS平均成绩FROM成绩;
WHERE性别=”男”:
GROUPBY学号:
__________COUNT(﹡)>=4。
第4题:
在成绩表中,检索选修3门以上课程的学生的及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。
请将下面的SQL语句补充完整。
SELECT学号,SUM(成绩)FROM【 】;
WHERE成绩>=60;
GROUP BY学号;
【 】COUNT(*)>=3
第5题:
第下列各题中使用如下数据表。 “学生”表:学号C(8),姓名C(8),性别c(2),系名(6) “课程”表:课程编号C(4),课程名称c(12),开课系名C(10) “成绩”表:学号c(8),课程编号c(4),成绩N(6,2) 检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的SQL语句是( )。
A.SELECT课程.课程名称,学生.姓名,MAX(成绩). As最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 GROUP BY课程编号
B.SELECT课程.课程名称,学生.姓名,MAX(成绩) AS最高分 FROM成绩,课程,学生 wHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 GROUP BY课程.课程编号
C.SELECT课程.课程名称,学生.姓名.MAX(成绩) AS.最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 ORDER BY课程.课程编号
D.SELECT课程.课程名称,学生.姓名.MAX(成绩) AS最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.!学号 ORDER BY课程.课程编号