第 1 页:基本操作题 |
第 2 页:简单应用题 |
第 3 页:综合应用题 |
三、综合应用题
3[简答题]
利用表设计器在考生文件夹下建立表table3,表结构如下:
然后编写程序prog1.prg,在xuesheng表和chengji表中查询所有成绩不及格(分数小于60)的学生信息(学号、姓名、课程名和分数),并把这些数据保存到表table3中(若一个学生有多门课程不及格,在表table3中就会有多条记录)。要求查询结果按分数升序排列,分数相同则按学号降序排列。
要求:在程序中用SET RELATION命令建立chengji表和xuesheng表之间的关联(同时用INDEX命令建立相关的索引),并通过DO WHILE循环语句实现规定的功能。最后运行程序。
参考解析:【考点分析】本大题主要考查的知识点是:新建自由表,创建程序文件,SQL语句中的0RDER BY、GROUPBY、INTO TABLE短语的使用,循环、选择语句的使用,利用命令建立索引,删除表以及SQL的插入语句。 【解题思路】利用建立索引的命令来新建索引,通过循环语句的使用来判断满足条件的数据,再使用IF语句进行分段节选,将符合要求的信息进行保存,最后再将查询出的结果进行排序和保存,删除中间表。
【操作步骤】
步骤1:通过前面所学的知识,按照题目的要求新建一张表table3。
步骤2:新建程序prog1.prg,输入下列命令语句,并运行该程序。
* * * * * * prog1.prg中的代码* * * * * * *
&&关闭程序运算的显示过程
SET TALK OFF
&&打开数据库
OPEN DATABASE cj_m
&&选择查询字段,制定字段来源,设置查询条件,将查询结果存储列表temp中
SELECT*FRON table3 NHERE.F.TNTOTABLE temp
SEL,ECT 1
&&打开xuesheng表
USE xuesheng
&&建立索引
INDEX ON学号TAG学号
SELECT 2
&&打开chengji表
USE chengji
&&建立索引
INDEX ON学号TAG学号
SET RELATION T0学号INTO xuesheng
GOTOP
&&循环直至遍历所有记录
DO WHILE.NOT.EOF()
&&先进行判断,满足条件就向temp表中插入数据
IF chengji.数学<60
INSERT INTO temp Values(xuesheng.学号,xuesheng.姓名,‘数学’,chencjji.数学)
ENDIF
&&先进行判断,满足条件就向temp表中
插入数据TF chencsji.英语<60
INSERT TNTO temp Values(xuesheng.学号,xuesheng.姓名,‘英语’,chengji.英语)
(ENDTF
&&先进行判断,满足条件就向temp表中插入数据
(IF chencjji.信息技术<60
INSERT TNTO temp Valuea(xueshencj.学号,xuesheng.姓名,‘信息技术’,chengji.信息技术)
(ENDDO
&&选择查询字段,指定字段来源,查询结果按分数升序排列,分数相同按学号升序排列,将查询结果存储到AR.RAY arr中
SELECT*FROM temp ORDER BY分数,学号
DESC TNTO ARRAY arr
&&将ARRAY arr中数据插入table3中
TNSERT TNTO table3 FROM ARRAY arr
&&关闭数据库
CLOSE DAr2ABASE
关闭表
CLOSE TABT,ES ALL
删除temp
DROP TABLE temp
&&关闭程序运算的显示过程
SET TALK ON
&&返回
RETURN
* * * * * * * * * * * * * * * * * * * *
【易错提示】对于建立普通索引的命令以及利用命令删除表,考生需要牢记,在循环语句和选择语句的嵌套使用,也是需要考生特别注意的。
相关推荐: